Вхід:
Рядок
Вихід:
1) Спочатку беремо символ видалення в кінці вхідного рядка, поки нам не залишиться довжина, яка є квадратом (тобто 1, 4, 9, 16, 25, 36 і т. Д.)
Отже abcdefghijklmnopqrstuvwxyz
(довжина 26) стає abcdefghijklmnopqrstuvwxy
( довжина 25).
2) Потім ми ставимо це в квадрат, по черзі, ліворуч праворуч:
abcde
fghij
klmno
pqrst
uvwxy
3) Складаємо його у всіх чотирьох напрямках, як це (ми продовжуємо розгортатися, поки на зовнішньому складеному «блоці» більше немає внутрішніх символів).
m
qrs
l n
ghi
abcde
ihgf jihg
mn lk on lm
srqp tsrq
uvwxy
qrs
l n
ghi
m
Деякі речі, що слід зазначити, коли ми згортаємось назовні, ми в основному дзеркально виглядаємо так (цифри, додані як уточнення, що представляє "індекси" у цих прикладах):
Коли ми складемо ліву сторону:
123 to: 321 123
fghij ihgf j
Коли ми складемо праву сторону:
123 to: 123 321
fghij f jihg
Коли ми згинаємо вгору:
3q
2l
1g
b to: b
1g 1
2l 2
3q 3
v v
Коли ми згинаємо вниз:
b b
1g 1
2l 2
3q 3
v to: v
3q
2l
1g
Правила виклику:
- Можна припустити, що вхід завжди матиме щонайменше 1 символ (який також буде вихідним).
- Формат виводу є гнучким, тому ви можете друкувати на STDOUT або STDERR; повернутися у вигляді рядкового масиву / списку або символу 2D-масиву; одина рядок з новими рядками; тощо.
- Вхід буде містити лише буквено-цифрові символи (
a-zA-Z0-9
) - Ви також можете використовувати не алфавітно-цифрові символи для заповнення пробілів у та / або навколо виводу ASCII-арт, як крапка
.
. - Кінцеві пробіли та окремий проміжний новий рядок необов’язкові.
- Ми продовжуємо розгортатися до тих пір, поки на зовнішньому складеному «блоці» не буде більше розгорнутих центрів.
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам з кодовим гольфом відштовхувати вас від публікації відповідей з мов, що не кодують гольф. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Стандартні правила застосовуються до вашої відповіді, тому вам дозволяється використовувати STDIN / STDOUT, функції / метод із відповідними параметрами та повним програмами типу повернення. Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду.
- Також, будь ласка, додайте пояснення, якщо це необхідно.
Тестові приклади:
Input: abcdefghijklmnopqrstuvwxy
Output:
m
qrs
l n
ghi
abcde
ihgf jihg
mn lk on lm
srqp tsrq
uvwxy
qrs
l n
ghi
m
Input: A
Ouput:
A
Input: ThisIsATest
Output:
I
Thi
Is sI
ATe
I
Input: HowAboutAVeryLongExampleWhichIsAlsoAnEvenSquareInsteadOfOddOneAndExceeds64Chars
Output:
An
ch
xamp
i I
o E
quar
steadO
S e
s v
h s
E l
VeryLo
HowAbout
oLyreVA noLyreV
xampl Eg el Examp
hci Is hW As hi Ihc
nAo Ev sl ev so EnA
quare Sn Ie Squar
Odaetsn fOdaets
OddOneAn
steadO
S e
s v
h s
E l
VeryLo
xamp
i I
o E
quar
An
ch
Input: Lenght7
Output:
Le
ng
Input: abc
Output:
a