Lấy cảm hứng từ C -directive #define
.
Thử thách
Cho một cụm từ với một số bí danh và một mảng với mỗi văn bản bí danh. Xuất cụm từ ban đầu thay thế từng bí danh bằng văn bản tương ứng.
Một bí danh được xác định bởi một sắc nét #
theo sau là chỉ mục của nó trong mảng (chỉ mục có thể bắt đầu từ 0 hoặc 1). Bí danh có thể chứa một bí danh khác trong văn bản của nó và bạn phải giải quyết tất cả chúng (có thể đệ quy). Bạn có thể giả sử bí danh sẽ không bao giờ chạy vào một vòng lặp vô hạn. Bí danh sẽ không có các số 0 đứng đầu ( #02
không phải là bí danh tại chỉ mục 2
, đó là bí danh tại chỉ mục 0
theo sau là văn bản 2
).
Bạn có thể giả sử mảng sẽ không vượt qua 20 mục.
Bạn có thể viết một chương trình, hoặc một chức năng hoặc thậm chí là #define
- nó sẽ rất tuyệt :)
Bạn cũng có thể sử dụng một phương thức nhập khác phù hợp hơn với ngôn ngữ của bạn.
Thí dụ
phrase: "#0 & #3"
array: [
"Programming #1",
"Puzzles",
"Code",
"#2 Golf"
]
output: "Programming Puzzles & Code Golf"
Từng bước một:
0> "#0 & #3"
1> "Programming #1 & #2 Golf"
2> "Programming Puzzles & Code Golf"
Vì đây là môn đánh gôn , câu trả lời ngắn nhất bằng byte sẽ thắng!
Một mẫu khác
phrase: "#0!"
array: [
"We are #1",
"#2",
"#3",
"#4 !",
"graduating"
]
output: "We are graduating !!"
phrase: "##0#1#0#21#3#4"
array: [
"a",
"m",
"z",
"n",
"g"
]
output: "#amaz1ng"
phrase: "##1#23"
array: [
"WEIRD",
"0 C",
"AS"
]
output: "WEIRD CAS3"
phrase: "#1#7#6y#4#7#10s#7b#11#0#0#11r#7#0h#6#5#2#5#9#4."
array: [
"t",
"#12#3",
"#11ga#3",
"#0#10v#11",
"#0h#10#8g",
"#7#8",
"a#8",
" ",
"n",
"o",
"i",
"e",
"P#9s#10"
]
output: "Positive anything is better than negative nothing."
Các ví dụ trên sử dụng Array với chỉ số bắt đầu từ 0.
#01
#0
không nên xuất hiện? Hoặc là#01
hợp lệ nhưng không phải là bí danh (nghĩa là nó chỉ còn lại trong đó)?