Вам будет предоставлена строка, состоящая из печатного ASCII (без перевода строки). Твоя задача - построить красивую лестницу для моего замка.
Как построить хорошую Лестницу?
Прежде всего, вы должны получить все вращения Струны. Например, строка
abcd
имеет следующие повороты:abcd, bcda, cdab, dabc
(каждый символ перемещается до конца, пока мы не достигнем последнего символа).Теперь мы помещаем каждый поворот поверх друг друга:
abcd bcda cdab dabc
Мы не можем по-настоящему взобраться на прямую стену, поэтому мы должны построить лестницу. Это означает, что вы должны добавить количество пробелов перед каждым вращением, соответствующее его индексу в списке вращений:
abcd bcda cdab dabc
Вам также нужна Лестница, которая связана с другой стороной моего замка, поэтому вы должны построить такую, как показано ниже, поменять местами каждый поворот и добавить интервал:
abcd dcba bcda adcb cdab badc dabccbad
Это код-гольф , поэтому выигрывает самый короткий код в байтах и применяются стандартные правила для тега.
Тестовые случаи
Вход:
abcd
Выходabcd dcba bcda adcb cdab badc dabccbad
Вход:
aaaa
Выходaaaa aaaa aaaa aaaa aaaa aaaa aaaaaaaa
Вход:
Code golf
Выход (Обратите внимание на пробелы):Code golf flog edoC ode golfC Cflog edo de golfCo oCflog ed e golfCod doCflog e golfCode edoCflog golfCode edoCflog olfCode g g edoCflo lfCode go og edoCfl fCode gollog edoCf
dab
с. -------Ответы:
05AB1E , 12 байтов
Код:
Использует кодировку 05AB1E . Попробуйте онлайн!
Объяснение:
источник
Желе , 16 байт
Попробуйте онлайн!
Конечно, -1 с помощью Джонатана Allan «S
ɓ
!источник
J’ɓ⁹⁶ẋ;"ṙz⁶Zm€0Y
(илиLḶ
дляJ’
)Сетчатка , 47 байт
Попробуйте онлайн!Объяснение: Первый этап создает левую лестницу, рассматривая каждый символ и создавая пробелы, равные текущей позиции, затем остаток строки, затем начало строки, а затем пробелы, равные остатку строки. Остальная часть сценария выполняется по каждой строке, сгенерированной по очереди. Сначала строка дублируется, затем символы в дубликате меняются местами, затем строка и ее дубликат объединяются.
источник
Python 3 , 89 байт
Попробуйте онлайн!
-1 байт благодаря овсу
-1 байт благодаря Линн
источник
l-i-1
может быть просто ,l+~i
как~i == -i-1
' '*(l+~i)*2
равно' '*(l+~i)
, что на один байт короче!C (gcc) , 126 байтов
Попробуйте онлайн!
источник
Древесный уголь ,
23 2120 байтПопробуйте онлайн!
Возможно, можно играть в гольф больше, но я выкладываю из мобильного приложения. Ссылка на подробную версию .
источник
G→↘←Lθθ‖C
.Haskell,
8079 байтовПопробуйте онлайн!
Как это устроено
Изменить: Спасибо @ Örjan Йохансен за байт.
источник
u#_=u
сохраняет байт.unlines
гдеu#_=u
не проверяется тип, а потом переключился на создание одной строки ... Спасибо!J, 34 байта
ungolfed
Попробуйте онлайн!
источник
Pyth , 19 байт
Попробуйте онлайн!
источник
Mathematica, 119 байт
источник
PHP, 95 байт
Запустите как трубу с
-nR
или попробуйте онлайн .сломать
источник
Japt , 22 байта
Ведущий перевод строки является частью программы.
Попробуйте онлайн!
Запустите все тестовые случаи используя мой WIP CodePen.
объяснение
Неявный:
U
= входная строка. Первая строка пуста, чтобы не перезаписыватьU
.Вторая строка неявно назначает длину (
l
)U
дляV
.Третья строка:
источник
Pyth, 20 байтов
Попробуйте онлайн!
источник
Javascript (ES6), 118 байт
Пример кода:
источник
Python 2 ,
8583 байтаl+~i
и помог мне обнаружить нежелательное пространствоПопробуйте онлайн!
источник
l-1-i
может быть просто ,l+~i
как~i == -i-1
восьмых ,
173168 байтКод
Неуправляемая версия с комментариями
Использование и примеры
Или более четко
источник