Альтернатива - это процесс взятия строки и ее размещения в чередующихся скобках. Вот как вы чередуете строку.
Для строки длины 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
.