Вызов
Напишите программу или функцию, которая принимает строку s
и целое число в n
качестве параметров. Ваша программа должна напечатать (или вернуть) строку при преобразовании следующим образом:
Начиная сверху слева и двигаясь вниз и вправо, пишите s
как волна высоты n
. Затем сверху вниз объедините каждую строку в строку (без пробелов).
пример
Дана строка "WATERMELON" и высота 3:
Волна должна выглядеть так:
W R O
A E M L N
T E
Затем объедините строки сверху вниз:
WRO
AEMLN
TE
Итак, ваша программа должна вернуть строку "WROAEMLNTE"
Аналогично, "WATERMELON" с высотой 4 должен произвести следующую волну:
W E
A M L
T R O
E N
Ваша программа должна затем вернуть строку "WEAMLTROEN"
правила
вход
Входные данные могут быть приняты в любом разумном формате. Строка может быть в любом случае вы предпочитаете. Вы можете предположить, что0 < n <= s.length
Выход
Вывод должен состоять только из преобразованной строки (независимо от того, возвращена она или напечатана в STDOUT), плюс любые завершающие символы новой строки.
счет
Это код-гольф , поэтому выигрывает самый короткий ответ в байтах! Стандартные лазейки не допускаются.
Тестовые случаи
Input Output
programmingpuzzles, 5 -> piermnlsomgzgapzru
codegolf, 3 -> cgoeofdl
elephant, 4 -> enlatehp
1234567, 3 -> 1524637
qwertyuiop, 1 -> qwertyuiop
n > 0
, но n=1
это действительный случай. Я обновлю вопрос сейчас.
n
> 1? Пожалуйста, уточните, а если нет, добавьте тестовый пример