(Вдохновлено ранним проектом проблемы фрактальной линии PhiNotPi .)
Вам даны ширина W > 1
, высота H > 1
и строка, состоящая из 2(W+H-2)
печатных символов ASCII. Задача состоит в том, чтобы напечатать эту строку, обернутую вокруг прямоугольника заданной ширины и высоты, начиная с верхнего левого угла, по часовой стрелке. Внутри прямоугольника есть пробелы. Надеемся, что тестовые случаи должны прояснить это.
Вы можете написать программу или функцию, принимая ввод через STDIN (или ближайшую альтернативу), аргумент командной строки или аргумент функции, и либо печатая результат в STDOUT (или ближайшую альтернативу), либо возвращая его в виде строки.
Не должно быть начальных или конечных пробелов (кроме тех, которые могут быть во входной строке). При желании вы можете вывести один завершающий символ новой строки.
Это код гольф, поэтому выигрывает самое короткое представление (в байтах).
Тестовые случаи
Каждый тестовый пример "String" W H
сопровождается ожидаемым результатом.
"Hello, World! "
5 4
Hello
,
!
dlroW
"+--+|||+--+|||"
4 5
+--+
| |
| |
| |
+--+
">v<^"
2 2
>v
^<
"rock beats scissors beats paper beats "
11 10
rock beats
s
s c
t i
a s
e s
b o
r
r s
epap staeb
Note that the following string contains an escaped '"'.
"!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
46 3
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN
~ O
}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQP
Leaderboards
Вот фрагмент стека, который генерирует как регулярную таблицу лидеров, так и обзор победителей по языкам.
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
# Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
# Ruby, <s>104</s> <s>101</s> 96 bytes