Viết chương trình nhận (thông qua stdin hoặc dòng lệnh) một chuỗi với dạng đệ quy
PREFIX[SUFFIXES]
Ở đâu
PREFIX
có thể là bất kỳ chuỗi chữ cái viết thường (az), bao gồm cả chuỗi trống vàSUFFIXES
có thể là bất kỳ chuỗi nào có dạng đệ quy đượcPREFIX[SUFFIXES]
nối với nhau, bao gồm cả chuỗi trống.
Tạo một danh sách các chuỗi chữ thường từ đầu vào bằng cách đánh giá đệ quy danh sách các chuỗi trong mỗi hậu tố và nối chúng vào tiền tố. Đầu ra để xuất ra các chuỗi trong danh sách này theo bất kỳ thứ tự nào, mỗi chuỗi trên một dòng (cộng với một dòng mới tùy chọn).
Thí dụ
Nếu đầu vào là
cat[s[up[][]][]ch[e[r[]s[]]]a[maran[]comb[]pult[[]ing[]]]]
sau đó tiếp đầu ngữ là
cat
và và hậu tố làs[up[][]]
,[]
,ch[e[r[]s[]]]
, vàa[maran[]comb[]pult[[]ing[]]]
. Mỗi hậu tố có tiền tố riêng và hậu tố lần lượt.Đầu ra sẽ là 9 từ này theo thứ tự bất kỳ
catsup cats cat catcher catches catamaran catacomb catapult catapulting
bởi vì đầu vào mã hóa cây này
và mỗi trong số 9 từ đầu ra có thể được hình thành bằng cách duyệt qua cây từ gốc đến lá.
Ghi chú
Hãy nhớ rằng tiền tố có thể là chuỗi rỗng, vì vậy một cái gì đó như
[donut[][]cruller[]]
là đầu vào hợp lệ có đầu ra sẽ (theo thứ tự bất kỳ)
donut cruller
trong đó dòng trống dành cho chuỗi trống mà hậu tố thứ hai khớp.
Chuỗi hậu tố cũng có thể để trống, vì vậy trường hợp đầu vào tầm thường
[]
có một dòng trống duy nhất là đầu ra của nó:
- Bạn có thể cho rằng đầu vào sẽ chỉ tạo ra các từ đầu ra duy nhất.
- ví dụ
hat[s[]ter[]s[]]
sẽ là đầu vào không hợp lệ vìhats
được mã hóa hai lần. - Tương tự,
[[][]]
không hợp lệ vì chuỗi rỗng được mã hóa hai lần.
- ví dụ
- Bạn không thể cho rằng đầu vào càng ngắn hoặc nén càng tốt.
- ví dụ:
'e'
nút trong ví dụ chính ở trên có thể được kết hợp với'ch'
nút, nhưng điều đó không có nghĩa là đầu vào không hợp lệ. - Tương tự,
[[[[[]]]]]
là hợp lệ, mặc dù chỉ mã hóa chuỗi rỗng theo cách tối ưu phụ.
- ví dụ:
- Thay vì một chương trình, bạn có thể viết một hàm lấy chuỗi đầu vào làm đối số và in đầu ra bình thường hoặc trả về dưới dạng chuỗi hoặc danh sách.
Mã ngắn nhất tính bằng byte thắng.