Описание задачи
На некоторых каналах популярного потокового сайта twitch.tv распространено сообщение, что люди, как правило, спамят в чатах, чтобы заманить людей в спам. "LUL" - это
One more LUL and I'm out
LUL - популярная эмоция, используемая для выражения того, что в эфире произошло нечто забавное.
Вскоре промозглые мемы показали свой потенциал, и последовала пародия на копировальную пасту:
One more "One more LUL and I'm out" and I'm out
Который является тем же сообщением, вложенным в себя. Если задано неотрицательное целое число N
, выведите сами вложенные LUL-макароны N
, следуя приведенной ниже схеме.
Применяются стандартные правила код-гольфа , выигрывает самый короткий код в байтах.
Пример ввода / вывода
0: One more LUL and I'm out
1: One more "One more LUL and I'm out" and I'm out
2: One more "One more "One more LUL and I'm out" and I'm out" and I'm out
...
7: One more "One more "One more "One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out
Примечания
- Лидирующие / завершающие новые строки разрешены
- Капитализация должна быть сохранена
- Ваш код может быть полной программой или функцией
- Вместо печати вы можете вернуть строку или ее эквивалент на выбранном вами языке.
- Вы можете индексировать
1
вместо0
"
в начало и конец тоже?You Only YOLO once --> YOYOLOO. You Only YOYOLOO Once --> YOYOYOLOOO
и т. Д.Ответы:
Python 2 , 56 байт
Попробуйте онлайн!
1-индексируется
источник
[1:-1]
в конце обрезает двойные кавычки в начале и в конце?JavaScript,
57565452 байтТестовый фрагмент:
По какой-то причине фрагмент закуски глючит при вводе
0
, но это работает иначе. Назовите это какf(4)
.объяснение
источник
input
это недопустимый атрибут HTML, возможно, вы захотите удалить его. Во-вторых, это потому, что он принимает входные данные в виде строки, а не числа. Так"0"
что правдиво, пока0
фальшиво. Самый простой способ справиться с этим - поставить+
перед собой,this.value
когда вы его передаете.input
поле :).replace
.Befunge, 91 байт
Попробуйте онлайн!
Это разбивка исходного кода с выделением различных компонентов.
Мы начнем с чтения счетчика повторов N и сохранения его двух дубликатов в памяти.
Затем мы начинаем обратный отсчет первого N , помещая несколько копий «и я вышел» в стек в обратном порядке. Каждая дополнительная копия отделяется от предыдущей цитатой. Кавычка генерируется с последовательностью
90g
(в основном, чтение копии из первой строки источника), так как это самый короткий способ сделать это.Как только этот первый цикл завершен, мы помещаем «LUL» в стек (технически это наоборот, но это, очевидно, не имеет значения, когда это палиндром).
Затем у нас есть еще один цикл, переходящий через правую границу, слева от игрового поля, а затем снова обратно. На этот раз мы считаем второй N, помещая несколько копий «Еще один» в стек (снова в обратном порядке). И снова, каждая дополнительная копия отделяется от предыдущей цитатой.
После завершения второго цикла вся фраза находится в стеке (в обратном порядке), поэтому нам просто нужно выписать ее.
источник
"
. Спасибо за объяснение05AB1E ,
3029 байтПопробуйте онлайн!
Кажется, что разные типы строк плохо сочетаются, поэтому по какой-то причине мне нужно дважды завершить цикл.
источник
C ++, 118 + 16 = 134 байта
#include<string>
- +16заменяет "LUL" на всю строку N раз.
У кого-нибудь есть лучшие гольфы?
Попробуйте онлайн!
Огромное спасибо Kritixi Lithos и hvd за огромную помощь.
источник
<string>
оператор импорта в bytecount, не уверенfor(int i=0;i<x;i++)
наfor(int i=0;i++<x;)
r.find("L")
короче, чемr.find("LOL")
на 2 байта :)Javascript (ES6), 68 байт
Звоните как
f(n)
.Вы также можете назвать его как
f(n, "LUL")
и заменить LUL на любое слово, которое вы хотите.источник
V ,
3937 байтДва байта с помощью @KritixiLithos для разработки метода подстановки
Попробуйте онлайн!
HexDump:
источник
Ява,
7977 байтGolfed:
Неопытный, с тестом:
Выход программы:
источник
"\""
для'"'
(одиночных символов) , чтобы сохранить 2 байта.Python, 79 байт
Я просто хотел сделать рекурсивное решение, хотя это дольше, чем другие ответы.
Попробуйте онлайн
источник
C #, 125 байт
источник
Format
string
чтобыvar
сохранить два байта.C
140111 байтовМоя первая попытка ответить на вопрос о гольфе.
Я пришел к выводу, что это неправильный вывод, так как q (0) просто дает LUL. Следующая попытка:
Пример программы (протестирован с GCC на OSX):
Дает вывод
источник
Mathematica,
6968 байтСпасибо Мартину Эндеру за сохранение одного труднодоступного байта!
Безымянная функция, принимающая неотрицательный целочисленный аргумент и возвращающая строку.
Nest
повторно применяет функцию к начальному аргументу; в этом случае функция должна окружать свой аргумент соответствующими словами и кавычками. Мы начинаем"LUL"
и повторяемN+1
времена; это приводит к нежелательным кавычкам, охватывающим всю фразу, но[[2]]
сохраняет между ними только то, что нужно. В конце""<>
превращает результирующий сильно вложенный список в одну строку.Предыдущее представление:
источник
LUL
:""<>Nest[{q="\"",{"One more ",#," and I'm out"},q}&,"LUL",#+1][[2]]&
[[2]]
! Вот как обойти эти первые нежелательные цитаты: DC #,
1198571 байтСохранено 14 байтов благодаря @Luc
источник
string.Format
иСетчатка , 51 байт
Попробуйте онлайн!
источник
R, 97 байт
Ungolfed:
источник
R,
100 9792 байта«Еще одна рекурсивная функция, и я вышел»
Редактировать: Оказывается, что нерекурсивный подход немного короче:
источник
Japt , 39 байт
Спасибо @ETHproductions за помощь.
Попробуй это здесь!
источник
Рубин, 51 байт
Один индексированные. Попробуйте онлайн
источник
PowerShell ,
7267 байтПопробуйте онлайн!
источник
"$('"One more '*($c=1+"$args"))LUL$(' and I''m out"'*$c)".Trim('"')
выбриты 5 с помощью TRIM () вместо объединения , чтобы пропустить конец"
«sЛуа, 101 байт
Очевидная попытка строки. Повторяет
"One more
иand I'm out"
точно вводит + 1 раз, сLUL
промежуточным значением, затем удаляет первую и последнюю цитату.источник
Haskell, 51 байт
Индексы от 1.
источник
LUL
в кавычках.f -1="LUL"
, но я не вижу, как удалить лишние кавычки без связки новых символов.Рубин, 70 байт
Просто зацикливается на заданной сумме, каждый раз окружая последнюю строку форматной строкой.
Индекс начинается с единицы.
источник
С накоплением, 54 байта
Попробуй это здесь! Пример использования «функции»:
Один на 56 байтов:
источник
Python 3, 68 байт
def f(a):return('"One more '*a+'LUL'+(' and I%sm out"'%"'")*a)[1:-1]
источник
*a
вместо*5
?CJam,
5149 байтовПопробуйте онлайн
Ungolfed:
источник
W
вместо -1, чтобы сохранить один байт\"
, имея одну строку и добавляя"
к обоим концы с`
. Затем мне нужно было разделить строку, что я не мог сделать с длиной и/
, потому что первая часть короче. Поэтому я использовал перевод строки в качестве разделителя и сделалN/
. Поскольку теперь у нас есть обе части в списке, мы можем легко повторить их обе сразуf*
. ИLUL
вставляется в конце с помощью простого соединения (*
).Groovy, 54 байта
Довольно просто, так же, как и ответ Python, но на 2 байта короче. Это также 1-индексированный.
Попробуйте онлайн!
источник
Mathematica,
6563 байтаОтказ от двух байтов, заметив проблему, позволяет 1-индексировать.
источник
PHP
Здравствуйте, я нашел два способа сделать это.
Способ замены 1-индексированный (121 байт) .
Рекурсивный способ (86 байт) .
источник
C ++, 80 + 16 = 96 байт
#include<string>
- +16Ungolfed:
Вызывает себя рекурсивно и использует сложение строк. Довольно прямо вперед. Я имею в виду, что еще я могу сказать? Даже версия без присмотра - по сути, один вкладыш.
Попробуйте онлайн!
источник
Чеддер , 71 байт
Попробуйте онлайн!
источник
_ f ->
синтаксисом, который может сэкономить несколько байтов