Luân phiên , là hành động lấy một chuỗi và lồng nó trong các dấu ngoặc xen kẽ. Đây là cách bạn thay thế một chuỗi.
Đối với một chuỗi có độ dài N , lấy các ký tự N ở giữa và bao quanh chúng trong ngoặc đơn. Vì vậy, nếu chuỗi của chúng tôi là
Hello world!
(12 ký tự), chúng tôi sẽ kết thúc bằng(Hello world!)
Sau đó, lấy các
n-2
ký tự trung tâm còn lại và bao quanh chúng trong dấu ngoặc vuông. Trong trường hợp này, trung tâm là 10 ký tựello world
, vì vậy lần lặp tiếp theo là:(H[ello world]!)
Miễn là có nhiều hơn hai ký tự ở giữa chuỗi, lặp lại hai bước cuối cùng, xen kẽ giữa
()
và[]
. Đây là các bước cuối cùng:(Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!)
Vì chỉ còn lại hai ký tự ở giữa trong lần lặp cuối cùng, chúng tôi dừng lại. Chuỗi cuối cùng của chúng tôi là
(H[e(l[l(o[ w]o)r]l)d]!)
Lưu ý làm thế nào có hai ký tự trong ngoặc giữa. Điều này xảy ra khi đầu vào là một chiều dài chẵn. Nếu đầu vào là một độ dài lẻ (ví dụ:
Hello, world!
có thêm dấu phẩy), chúng ta sẽ chỉ có một ký tự ở giữa:(H[e(l[l(o[,( )w]o)r]l)d]!)
Đối với thử thách ngày nay, bạn phải viết một chương trình hoặc hàm lấy một chuỗi làm đầu vào và thay thế nó, xuất ra chuỗi mới. Bạn có thể lấy đầu vào và đầu ra ở bất kỳ định dạng hợp lý nào bạn muốn. Đầu vào sẽ luôn dài ít nhất một ký tự và sẽ chỉ chứa ASCII có thể in được. Bạn cũng có thể giả định rằng đầu vào sẽ không chứa bất kỳ dấu ngoặc đơn hoặc dấu ngoặc vuông. Đối với các ngôn ngữ truyền thống, điều này không quá quan trọng, nhưng nó có thể giúp một số ngôn ngữ bí truyền dễ dàng hơn.
Như thường lệ, đây là một cuộc thi đánh gôn , vì vậy hãy cố gắng đưa ra câu trả lời ngắn nhất có thể bằng ngôn ngữ bạn chọn. Chúc vui vẻ!
Kiểm tra IO
#Input #Output
"Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!)
"PPCG" --> (P[PC]G)
"Code-golf" --> (C[o(d[e(-)g]o)l]f)
"4 8 15 16 23 42" --> (4[ (8[ (1[5( [1]6) ]2)3] )4]2)
"a" --> (a)
"ab" --> (ab)
"abc" --> (a[b]c)
()
) hay chúng ta có thể bắt đầu bằng dấu ngoặc ( []
)?
()
HelloWorld
.