Учитывая строку текста, выведите ее как «башню».
Каждый фрагмент строки (формы 0:n
) повторяется несколько 5*n
раз, поэтому первый символ повторяется 5 раз, затем первый и второй 10 раз и т. Д.
Примеры:
'hello' ->
['h']
['h']
['h']
['h']
['h']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
['h', 'e', 'l', 'l', 'o']
'cat' ->
['c']
['c']
['c']
['c']
['c']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
['c', 'a', 't']
Правила:
Вы можете вывести каждый слой в виде списка символов или просто их строки, соединенных вместе.
[["c","c","c","c","c"],["ca","ca","ca","ca","ca","ca","ca","ca","ca","ca"],...]
?Ответы:
R , 48 байтов
Попробуйте онлайн!
Возвращает список строк.
источник
05AB1E , 6 байтов
Попробуйте онлайн!
Возвращает список строк.
объяснение
источник
ηā5*ÅΓ
ηvyg5*Fy=
на 8.Haskell , 36 байт
Попробуйте онлайн!
источник
Stax , 8 байт
Запустите и отладьте его
Распакованный, размазанный и прокомментированный, это выглядит так.
Запустите этот
источник
TI-Basic (TI-84 Plus CE), 29 байт (27 токенов)
Объяснение:
источник
Сетчатка , 15 байт
Попробуйте онлайн! Ссылка включает в себя тестовые случаи. Объяснение:
Совпадение каждого символа в строке.
$`
это префикс матча. Затем Retina предоставляет два модификатора,>
изменяет его так, чтобы он находился в контексте строки между последовательными совпадениями, и.
принимает длину. Поэтому мы начинаем с префикса суффикса, который эквивалентен совпадению, включая его префикс. Это экономит 2 байта, используя перекрывающиеся совпадения. Затем$(
он объединяет это с новой строкой,5*
повторяет его, а затем$.>`
повторяет еще большее количество раз, определяемое его длиной.источник
Холст , 6 байтов
Попробуй это здесь!
Объяснение:
источник
Брахилог , 15 байт
Попробуйте онлайн!
Финал
c
может быть удален, если OP ответит положительно на вопрос о выводе двумерных массивов.источник
Cubix ,
4440 байтПопробуйте онлайн!
У этого все еще есть много бездействующих, но это немного лучше чем прежде.
В качестве очень краткого описания, символ извлекается из ввода и тестируется на предмет EOI (-1), остановка, если это так. Стек затем переворачивается. Получить количество элементов в стеке и умножить на -5. Бросьте это на дно стека и очистите. Цикл по стеку, печать, до отрицательного числа. Выведите новую строку, увеличьте число, если 0 сбрасывает ноль, переверните стопку и начните с ввода снова, в противном случае переберите стопку, печатая до отрицательного числа ... ad nauseum
Cubified это выглядит как
Смотреть онлайн
источник
Желе , 8 байт
Попробуйте онлайн!
Попробуйте онлайн!
Попробуйте онлайн!
Это, вероятно, гольф.
источник
+\ẋ"Jx5Ẏ
JavaScript,
4846 байт(спасибо @ redundancy)
Редактировать: Автор уточнил, и этот ответ не является действительным, но я оставлю его здесь без изменений.
Возвращает массив многострочных строк.
Попытайся
Потенциальная стратегия:
Это мне не очень помогло, но, возможно, кто-то может использовать это:
Количество символов в (0-индексированной) строке
i
равноfloor(sqrt(2/5*i+1/4)+1/2)
, как в JavaScript как(.4*i+.25)**.5+.5|0
.Для строки длины
n
естьn*(n+1)*5/2
строки.Может быть:
s=>{for(i=0;(n=(.4*i+++.25)**.5+.5|0)<=s.length;)console.log(s.slice(0,n))}
источник
Python 3 ,
4341 байтСпасибо ovs за сохранение 2 байта!
Код
Попробуйте онлайн!
источник
C (gcc) , 67 байт
Попробуйте онлайн!
источник
Шелуха , 8 байт
Попробуйте онлайн!
объяснение
источник
Haskell,
464342 байтаПопробуйте онлайн!
К сожалению
inits
требуетimport Data.List
, такс его 45 байтами длиннее.
Редактировать: -1 байт благодаря @BWO.
источник
Древесный уголь , 11 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Вывод включает 0 повторов подстроки нулевой длины. Объяснение:
источник
Рубин ,
4642 байтаПопробуйте онлайн!
источник
PowerShell ,
402025 байтСчет сократился вдвое благодаря невероятным
+5 байтам благодаря AdmBorkBork, указывающему спецификации
Попробуйте онлайн!
Вводит через сплаттинг. Работает путем построения строки путем добавления следующего символа к себе, преобразует его в массив из одного элемента, а затем повторяет его
5*i
раз.источник
param
это очень дорого. Попытайтесь избежать этогоMATL , 12 байт
Попробуйте онлайн!
источник
V , 17 байт
Ожидаются вводы без перевода строки и выводы с лишними ведущими переводами строки.
Я могу удалить эту запись, если ввод / вывод нарушает спецификацию вызова.
Попробуйте онлайн!
21 байт
Ожидает ввод без перевода строки, но вывод только с одним и последним переводом строки.
объяснение
Разные подстроки разделяются двумя последовательными символами новой строки, поэтому дублирование строк также применяется только к строкам, соответствующим регулярному выражению
$\n\n
.Когда команде дублирования (
Ä
) предоставляется счетчик, например6Ä
, (я думаю), он удаляет текущую строку перед вставкойn
времени, таким образом, появляется только для добавленияn - 1
копий.источник
Perl 5 , 29 байт
Попробуйте онлайн!
источник
Perl 6 , 25 байт
Попробуйте онлайн!
Блок анонимного кода, который возвращает список списка строк.
Если вы хотите использовать его как одномерный массив, вы можете добавить его
flat
впереди так:Попробуйте онлайн!
Объяснение:
С другой стороны,
Попробуйте онлайн!
Также работает на такое же количество байтов.
источник
Japt, 10 байт
Ожидание подтверждения того, является ли выходной формат приемлемым (+2 байта, если нет).
Попытайся
источник
Джапт ,
1512 байт-3 байта от @Shaggy
Попробуйте онлайн!
источник
JavaScript, 76 байт
источник
i=1;i<=s.length;i++
может бытьi=0;++i<=s.length;
.Forth (gforth) , 48 байтов
Попробуйте онлайн!
объяснение
Код Объяснение
источник
Java 10,
120929089 байт-28 байт благодаря @ OlivierGrégoire .
-1 байт благодаря @ceilingcat .
Попробуйте онлайн.
Объяснение:
источник
s->{for(int i=1,j=1;i<=s.length();i+=j++<i*5?0:+(j=1))System.out.println(s.substring(0,i));}
>=
и?j=1:0
вместо<
и?0:+(j=1)
.брейкфук , 40 байт
Попробуйте онлайн!
источник
APL (Dyalog Unicode) , 14 байтов SBCS
Попробуйте онлайн!
Мой первый пост apl, поэтому, пожалуйста, дайте мне знать, если у вас есть какие-либо предложения
Как это устроено:
источник
↑
на самом деле не разделять на строки, а объединить [список списков] в строки [матрицы] , или, более технически, увеличить ранг за счет глубины .Рубин , 37 байт
Попробуйте онлайн!
источник