Descrição do Desafio
Em alguns canais de um site popular de streaming, twitch.tv, uma mensagem comum é a de que as pessoas enviam spam em chats para atrair pessoas a enviar "LUL".
One more LUL and I'm out
LUL é um emote popular usado para expressar que algo engraçado aconteceu no fluxo.
Logo, memes úmidos mostraram seu potencial e uma paródia da cópia-massa se seguiu:
One more "One more LUL and I'm out" and I'm out
Qual é a mesma mensagem aninhada em si mesma. Dado um número inteiro não negativo N
, produza os N
tempos aninhados da massa LUL em si, seguindo o padrão abaixo.
Aplicam-se as regras de código-golfe padrão , o código mais curto em bytes vence.
Entrada / saída de amostra
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
Notas
- Novas linhas iniciais / finais são permitidas
- A capitalização deve ser preservada
- Seu código pode ser um programa completo ou uma função
- Em vez de imprimir, você pode retornar uma string ou seu equivalente no idioma de sua escolha
- Você pode indexar em
1
vez de0
"
no início e no fim também?You Only YOLO once --> YOYOLOO. You Only YOYOLOO Once --> YOYOYOLOOO
Respostas:
Python 2 , 56 bytes
Experimente online!
É 1 indexado
fonte
[1:-1]
no final apara as aspas duplas no início e no final?JavaScript,
57565452 bytesSnippet de teste:
Por alguma razão, o snippet de lanche está com erros quando a entrada é
0
, mas isso funciona de outra maneira. Chame assimf(4)
.Explicação
fonte
input
é um atributo HTML inválido, talvez você queira removê-lo. Em segundo lugar, é porque ela recebe a entrada como uma sequência, não como um número. Assim"0"
é verdade enquanto0
é falso. A maneira mais fácil de lidar com isso é colocar+
na frentethis.value
quando você está passando.input
:) campo.replace
.Befunge, 91 bytes
Experimente online!
Este é um detalhamento do código-fonte com as várias partes do componente destacadas.
Começamos lendo a contagem de repetições N e armazenando duas duplicatas na memória.
Em seguida, fazemos a contagem regressiva do primeiro N , empurrando várias cópias de "e estou fora" na pilha ao contrário. Cada cópia adicional é separada da cópia anterior com uma cotação. A cotação é gerada com a sequência
90g
(basicamente lendo uma cópia da primeira linha da fonte), pois essa é a maneira mais curta de fazer isso.Quando esse primeiro loop é concluído, pressionamos "LUL" na pilha (tecnicamente, isso é o inverso, mas obviamente não faz diferença quando é um palíndromo).
Depois, temos outro loop, passando pela borda direita, para a esquerda do campo de jogo e depois novamente. Desta vez, estamos contando o segundo N, colocando várias cópias de "Mais um" na pilha (novamente no sentido inverso). E, novamente, cada cópia adicional é separada da cópia anterior com uma cotação.
Depois que o segundo loop estiver concluído, a frase inteira estará agora na pilha (no sentido inverso), por isso precisamos simplesmente escrevê-la.
fonte
"
. Obrigado pela explicação05AB1E ,
3029 bytesExperimente online!
Diferentes tipos de string não parecem se misturar bem, então, por algum motivo, preciso finalizar o loop duas vezes.
fonte
C ++, 118 + 16 = 134 bytes
#include<string>
- +16substitui "LUL" para toda a cadeia N vezes.
Alguém tem melhores golfe?
Experimente online!
Enorme graças ao Kritixi Lithos e hvd , para, uh, ajuda maciça.
fonte
<string>
declaração de importação para o bytecount, não tenho certezafor(int i=0;i<x;i++)
parafor(int i=0;i++<x;)
r.find("L")
é mais curto do quer.find("LOL")
por 2 bytes :)Javascript (ES6), 68 bytes
Ligue como
f(n)
.Você também pode chamá-lo como
f(n, "LUL")
e substituir LUL por qualquer palavra que desejar.fonte
V ,
3937 bytesDois bytes com a ajuda de @KritixiLithos para criar o método de substituição
Experimente online!
Hexdump:
fonte
Java,
7977 bytesGolfe:
Sem Golfe, com teste:
Saída do programa:
fonte
"\""
para'"'
(caracteres únicos) para economizar 2 bytes.Python, 79 bytes
Eu só queria fazer uma solução recursiva, mesmo que seja mais longa que outras respostas.
Experimente online
fonte
C #, 125 bytes
fonte
Format
...string
paravar
para salvar dois bytes.C,
140111 bytesMinha primeira tentativa de fazer uma pergunta sobre golfe.
Eu vim a perceber que é a saída errada, já que q (0) apenas fornece LUL. A próxima tentativa:
Exemplo de programa (testado com o GCC no OSX):
Dá saída
fonte
Mathematica,
6968 bytesAgradecemos a Martin Ender por economizar 1 byte difícil de encontrar!
Função sem nome, usando um argumento inteiro não negativo e retornando uma string.
Nest
aplica uma função repetidamente a um argumento inicial; nesse caso, a função é cercar seu argumento pelas palavras e aspas apropriadas. Começamos"LUL"
e repetimos osN+1
tempos; isso resulta em aspas indesejadas que encerram a frase inteira, mas[[2]]
mantém apenas o conteúdo entre elas. No final,""<>
transforma a lista fortemente aninhada resultante em uma única sequência.Submissão anterior:
fonte
LUL
:""<>Nest[{q="\"",{"One more ",#," and I'm out"},q}&,"LUL",#+1][[2]]&
[[2]]
! Assim é como contornar essas primeiras citações indesejadas: DC #,
1198571 bytesGuardado 14 bytes graças a @Luc
fonte
string.Format
eRetina , 51 bytes
Experimente online!
fonte
R, 97 bytes
Ungolfed:
fonte
R,
100 9792 bytes"Mais uma função recursiva e estou fora"
Edit: Acontece que uma abordagem não recursiva é um pouco mais curta:
fonte
Japonês , 39 bytes
Obrigado @ETHproductions por ajudar.
Experimente aqui!
fonte
Ruby, 51 bytes
Um indexado. Experimente online
fonte
PowerShell ,
7267 bytesExperimente online!
fonte
"$('"One more '*($c=1+"$args"))LUL$(' and I''m out"'*$c)".Trim('"')
raspada 5 utilizando uma guarnição () em vez de uma junção para pular o fim"
'sLua, 101 bytes
Tentativa óbvia de cordas. Repete
"One more
eand I'm out"
insira exatamente + 1 vezes, com umLUL
intervalo, e remove a primeira e a última cotação.fonte
Haskell, 51 bytes
Índices de 1.
fonte
LUL
aspas.f -1="LUL"
, mas não vejo como remover aspas extras sem um monte de novos símbolos.Ruby, 70 bytes
Simplesmente faça um loop pelo valor que é dado, envolvendo a última string por meio de uma string de formato a cada vez.
O índice começa em um.
fonte
Empilhados, 54 bytes
Experimente aqui! Exemplo de uso de "função":
Um para 56 bytes:
fonte
Python 3, 68 bytes
def f(a):return('"One more '*a+'LUL'+(' and I%sm out"'%"'")*a)[1:-1]
fonte
*a
vez de*5
?CJam,
5149 bytesExperimente online
Ungolfed:
fonte
W
vez de -1 para salvar um byte\"
de ter uma única sequência e adicionando a"
ambas as extremidades com`
. Então eu precisei dividir a corda que eu não poderia fazer com um comprimento e/
, porque a primeira parte é mais curta. Então, usei um avanço de linha como separador e o fizN/
. Como agora temos ambas as partes em uma lista, podemos repetir facilmente as duas ao mesmo tempof*
. E oLUL
é inserido no final com uma junção simples (*
).Groovy, 54 bytes
Bem simples, o mesmo que a resposta python, mas 2 bytes mais curto. Também é indexado em 1.
Experimente Online!
fonte
Mathematica,
6563 bytesDois bytes de diferença ao perceber o desafio, permite a indexação 1.
fonte
PHP
Olá, eu encontrei até agora duas maneiras de fazer isso.
A maneira de substituição indexada em 1 (121 bytes) .
O caminho recursivo (86 bytes) .
fonte
C ++, 80 + 16 = 96 bytes
#include<string>
- +16Ungolfed:
Chama a si próprio recursivamente e usa adição de string. Bem direto. Quero dizer, o que mais posso dizer? Mesmo a versão não-gasta é essencialmente uma linha.
Experimente online!
fonte
Queijo Cheddar , 71 bytes
Experimente online!
fonte
_ f ->
sintaxe que pode salvar alguns bytes