Gần đây tôi đã đắm chìm trong một số nỗi nhớ dưới dạng Bookworm Deluxe:
Trong trường hợp bạn chưa từng thấy nó trước đây, thì đây là một trò chơi chữ với mục tiêu là kết nối các ô liền kề để tạo thành các từ. Để xác định xem một chuỗi có phải là một từ hợp lệ hay không, nó sẽ kiểm tra nó dựa vào từ điển bên trong của nó, được lưu trữ ở định dạng nén trông như thế này:
aa
2h
3ed
ing
s
2l
3iis
s
2rdvark
8s
4wolf
7ves
Các quy tắc để giải nén từ điển rất đơn giản:
Đọc số ở đầu dòng và sao chép nhiều ký tự từ đầu của từ trước đó. (Nếu không có số, hãy sao chép nhiều ký tự như bạn đã làm lần trước.)
Nối các chữ cái sau vào từ.
Vì vậy, từ đầu tiên của chúng tôi là aa
, theo sau 2h
, có nghĩa là "sao chép hai chữ cái đầu tiên aa
và nối thêm h
", hình thành aah
. Sau đó 3ed
trở thành aahed
và vì dòng tiếp theo không có số, chúng tôi sao chép lại 3 ký tự để tạo thành aahing
. Quá trình này tiếp tục trong suốt phần còn lại của từ điển. Các từ kết quả từ đầu vào mẫu nhỏ là:
aa
aah
aahed
aahing
aahs
aal
aaliis
aals
aardvark
aardvarks
aardwolf
aardwolves
Thách thức của bạn là thực hiện việc giải nén này trong càng ít byte càng tốt.
Mỗi dòng đầu vào sẽ chứa 0 hoặc nhiều chữ số 0-9
theo sau bởi một hoặc nhiều chữ cái viết thường a-z
. Bạn có thể lấy đầu vào và đưa ra đầu ra dưới dạng danh sách các chuỗi hoặc dưới dạng một chuỗi với các từ được phân tách bằng bất kỳ ký tự nào ngoài 0-9
/ a-z
.
Dưới đây là một trường hợp thử nghiệm nhỏ khác với một vài trường hợp cạnh không được nêu trong ví dụ:
abc cba 1de fg hi 0jkl mno abcdefghijk 10l
=> abc cba cde cfg chi jkl mno abcdefghijk abcdefghijl
Bạn cũng có thể kiểm tra mã của mình trên từ điển đầy đủ: đầu vào , đầu ra .
locate
chương trình sử dụng loại mã hóa trên pathnames.
0
sẽ có0
s hàng đầu không?