Альтернестінг - це акт взяття струни і вкладення її в чергуються дужки. Ось як ви alternest рядок.
Для рядка довжиною 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
.