Snakified строка выглядит следующим образом:
T AnE eOf ifi ing
h s x l A k e r
isI amp Sna dSt
Твое задание
Возьмите строку s
и размер n
, затем выведите обнаженную строку. Входы ThisIsAnExampleOfaSnakifiedString
и 3
приведут пример выше.
Характеристики
s
будет содержать только символы ASCII между кодовыми точками 33 и 126 включительно (без пробелов и переносов).s
будет длиной от 1 до 100 символов.n
целое число, представляющее размер каждого сегмента выходной строки. Каждая строка символов (вверх / вниз или влево / вправо), составляющих кривые в «змее», имеетn
длину символов. Смотрите примеры тестов.n
будет от 3 до 10 включительно.- Выходная строка всегда начинает указывать вниз.
- Пробелы на каждой строке разрешены.
- Конечные переводы строк в конце вывода также допускаются.
- Ведущие пробелы не допускаются.
- Код-гольф означает, что выигрывает самый короткий код в байтах.
Тестовые случаи
a 3
a
----------
Hello,World! 3
H Wor
e , l
llo d!
----------
ProgrammingPuzzlesAndCodeGolf 4
P ngPu Code
r i z d G
o m z n o
gram lesA lf
----------
IHopeYourProgramWorksForInputStringsWhichAre100CharactersLongBecauseThisTestCaseWillFailIfItDoesNot. 5
I gramW tStri 100Ch gBeca CaseW DoesN
H o o u n e a n u t i t o
o r r p g r r o s s l I t
p P k n s A a L e e l f .
eYour sForI Which cters ThisT FailI
----------
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 10
! <=>?@ABCDE `abcdefghi
" ; F _ j
# : G ^ k
$ 9 H ] l
% 8 I \ m
& 7 J [ n
' 6 K Z o ~
( 5 L Y p }
) 4 M X q |
*+,-./0123 NOPQRSTUVW rstuvwxyz{
code-golf
string
ascii-art
code-golf
code-golf
string
balanced-string
decision-problem
code-golf
string
geometry
grid
code-golf
tips
lisp
code-golf
quine
tips
king-of-the-hill
code-challenge
math
code-golf
string
palindrome
math
fastest-code
code-golf
string
counting
code-golf
code-golf
internet
code-golf
quine
source-layout
hello-world
code-golf
math
number
sequence
arithmetic
code-golf
ascii-art
grid
code-golf
number
grid
code-golf
string
crossword
code-golf
code-golf
ascii-art
grid
counting
code-golf
code-golf
math
sequence
arithmetic
number-theory
code-golf
code-golf
graphical-output
geometry
random
code-golf
ascii-art
grid
counting
code-golf
string
ascii-art
code-challenge
test-battery
code-golf
string
code-golf
ascii-art
kolmogorov-complexity
code-golf
interpreter
code-golf
math
sequence
code-golf
math
primes
set-partitions
code-golf
user81655
источник
источник
Ответы:
Pyth,
4845444342 байтаПопробуйте онлайн.
Этот подход использует то же злоупотребление, что и ответ Ruby.
источник
Рубин, 87 байт
Некоторое незначительное злоупотребление правилом.
Trailing spaces on each line are allowed.
Каждая строка вывода - этоw
длина символов плюс новаяw
строка, где длина исходной строки, то есть достаточно длинная, чтобы вместить весь ввод. Отсюда довольно много ненужных пробелов справа от большогоn
.Неуправляемый в тестовой программе
источник
JavaScript (ES6), 143 байта
Где
\n
представляет буквальный перевод строки. Ungolfed:источник
Pyth,
857459 байтKl@Q0J0=Y*]d-+*@Q1K@Q1 1FNr1@Q1=XY-+*KNN1b;VK=XYJ@@Q0N=+J@[+K1 1-_K1 1).&3/N-@Q1 1;sY
=G@Q1=H@Q0KlHJ0=Y*]dt+*GKGFNr1G=XYt+*KNNb;VK=XYJ@HN=+J@[hK1t_K1).&3/NtG;sY
Спасибо @FryAmTheEggman за огромную помощь!
Гольф столько, сколько я мог. Попробуй это здесь! По какой-то причине перенос строки делает вывод странным. Вы можете взглянуть на вывод на полной странице
объяснение
Дышите секунду и сосредоточьтесь. Это можно разбить на три части, как почти любой «классический» алгоритм.
Первый раздел
Это где переменные инициализируются. Это может быть разделено на две части:
Вторая часть :
Второй раздел
Содержит актуальную логику.
Третий раздел
Это выходная часть. Не очень интересно ...
БОНУС
Я написал программу Pyth из этого скрипта Python.
источник
JavaScript (ES6), 122 байта
Тот же алгоритм, что и в ответе @ LevelRiverSt.
источник
C, 138 байтов
Это использует экранирование ANSI. Работает в терминале Linux.
Ungolfed:
источник
JavaScript (ES6), 131
Алгоритм: отображение позиции
x,y
в выходе к индексу во входной строке, так или иначе , как этого (несвязанного) ответ.Я позаимствовал у @LevelRiverSt способ удержания горизонтальной ширины равной длине ввода.
Меньше гольфа
Это был первый рабочий проект до игры в гольф
Тест
источник
Pyth, 122 байта
Я сделал формулу для вычисления позиций x, y каждого символа на основе размера сегмента / по модулю, но они стали больше, чем я ожидал: c
Объяснение:
Тест здесь
Для формул Math я использовал mod, чтобы сгенерировать флаги 0/1, а затем умножить на коэффициент, основанный на вводе
n
, добавив электронную таблицу с каждым шагом на фрагменте ниже.Показать фрагмент кода
источник
PHP,
127126124120119118117110106 байтИспользует кодировку ISO-8859-1.
Запустите так (
-d
добавлено только для эстетики):Ungolfed:
Tweaks
<
вместо!=
0
сначала строку , так что мне не нужно добавлять другой0
(в случае, если первый вывод в строке был a0
), получая истину00
.$o[$y]
==
сравнения направления с 1 для изменения координаты хnull
вint
строку смещения, как строка смещения отливают междунар все равно$c
источник