Alternesting,是将一个字符串并嵌套在交替的括号中的行为。这是改变字符串的方式。
对于长度为N的字符串,请使用中心N个字符,并将其括在括号中。因此,如果我们的字符串是
Hello world!
(12个字符),我们将得到(Hello world!)
然后,取下其余的中心
n-2
字符,并用方括号括起来。在这种情况下,中间的10个字符是ello world
,因此下一个迭代是:(H[ello world]!)
只要字符串中间剩余两个以上的字符,请重复最后两个步骤,在
()
和之间进行交替[]
。这是最后的步骤:(Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!)
由于最后一次迭代的中间只剩下两个字符,因此我们停止。我们的最后一个字符串是
(H[e(l[l(o[ w]o)r]l)d]!)
请注意中间的括号中如何有两个字符。当输入为偶数长度时会发生这种情况。如果输入为奇数长度(例如,
Hello, world!
添加了逗号),则中间将只有一个字符:(H[e(l[l(o[,( )w]o)r]l)d]!)
对于当今的挑战,您必须编写一个程序或函数,该程序或函数将字符串作为输入,并对其进行替换,然后输出新的字符串。您可以按照自己喜欢的任何合理格式进行输入和输出。输入将始终至少为一个字符长,并且仅包含可打印的ASCII。您还可以假定输入将不包含任何括号或方括号。对于传统语言来说,这没什么大不了的,但是对于某些深奥的语言来说,这可能会更容易。
与往常一样,这是一场代码高尔夫竞赛,因此请尝试使用您选择的语言做出尽可能短的答案。玩得开心!
测试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)
()
)开头还是可以以方括号([]
)开头?
()
HelloWorld
。