Descripción del desafío
En algunos canales en un sitio de transmisión popular twitch.tv, un mensaje común que las personas tienden a enviar spam en los chats para atraer a la gente a enviar spam "LUL" es
One more LUL and I'm out
LUL es un emote popular usado para expresar que algo gracioso sucedió en la transmisión.
Pronto, los memes húmedos mostraron su potencial y se produjo una parodia de la copia-pasta:
One more "One more LUL and I'm out" and I'm out
Cuál es el mismo mensaje anidado en sí mismo. Dado un número entero no negativo N
, genera los N
tiempos anidados de pasta LUL en sí mismo siguiendo el patrón a continuación.
Se aplican las reglas estándar de código de golf , gana el código más corto en bytes.
Entrada / salida de muestra
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
- Se permiten nuevas líneas iniciales / finales
- La capitalización debe ser preservada
- Su código puede ser un programa completo o una función
- En lugar de imprimir, puede devolver una cadena o su equivalente en el idioma que elija
- Puede indexar desde en
1
lugar de0
"
al principio y al final también?You Only YOLO once --> YOYOLOO. You Only YOYOLOO Once --> YOYOYOLOOO
etc.Respuestas:
Python 2 , 56 bytes
Pruébalo en línea!
Está indexado 1
fuente
[1:-1]
al final recorta las comillas dobles al principio y al final.JavaScript,
57565452 bytesFragmento de prueba:
Por alguna razón, el fragmento de snack tiene errores cuando la entrada es
0
, pero esto funciona de otra manera. Llámalo comof(4)
.Explicación
fuente
input
es un atributo HTML no válido, podría querer eliminarlo. En segundo lugar, es porque toma la entrada como una cadena, no como un número. Entonces"0"
es verdad mientras0
es falso. La forma más fácil de manejar eso es poner un+
frentethis.value
cuando lo pasas.input
campo extra :).replace
.Befunge, 91 bytes
Pruébalo en línea!
Este es un desglose del código fuente con las diversas partes componentes resaltadas.
Comenzamos leyendo la cuenta de repetición N y almacenando dos duplicados en la memoria.
Luego hacemos la cuenta regresiva de la primera N , empujando varias copias de "y estoy fuera" en la pila en reversa. Cada copia adicional se separa de la anterior con una cotización. La cita se genera con la secuencia
90g
(básicamente leyendo una copia de la primera línea de la fuente), ya que esa es la forma más corta de hacerlo.Una vez que se completa este primer bucle, empujamos "LUL" en la pila (técnicamente esto es a la inversa, pero obviamente no hace ninguna diferencia cuando se trata de un palíndromo).
Luego tenemos otro bucle, envolviendo el borde derecho, a la izquierda del campo de juego, y luego nuevamente. Esta vez estamos contando la segunda N, empujando varias copias de "One more" en la pila (nuevamente al revés). Y nuevamente, cada copia adicional se separa de la anterior con una cita.
Una vez que se completa el segundo ciclo, la frase completa está ahora en la pila (en reversa), por lo que simplemente necesitamos escribirla.
fuente
"
. Gracias por la explicación05AB1E ,
3029 bytesPruébalo en línea!
Parece que diferentes tipos de cadenas no se mezclan bien, por lo que, por alguna razón, necesito finalizar el ciclo dos veces.
fuente
C ++, 118 + 16 = 134 bytes
#include<string>
- +16reemplaza "LUL" a toda la cadena N veces.
¿Alguien tiene mejores campos de golf?
Pruébalo en línea!
Enormes gracias a Kritixi Lithos y hvd , por, eh, ayuda masiva.
fuente
<string>
declaración de importación en el bytecount, no estoy segurofor(int i=0;i<x;i++)
afor(int i=0;i++<x;)
r.find("L")
es más corto quer.find("LOL")
2 bytes :)Javascript (ES6), 68 bytes
Llama como
f(n)
.También puede llamarlo como
f(n, "LUL")
y reemplazar LUL con cualquier palabra que desee.fuente
V ,
3937 bytesDos bytes con la ayuda de @KritixiLithos para encontrar el método de sustitución
Pruébalo en línea!
Hexdump:
fuente
Java,
7977 bytesGolfizado:
Sin golf, con prueba:
Salida del programa:
fuente
"\""
a'"'
(caracteres únicos) para guardar 2 bytes.Python, 79 bytes
Solo quería hacer una solución recursiva, aunque sea más larga que otras respuestas.
Pruébalo en línea
fuente
C #, 125 bytes
fuente
Format
...string
avar
para guardar dos bytes.C,
140111 bytesMi primer intento de una pregunta de golf. Golfé:
Me he dado cuenta de que la salida es incorrecta ya que q (0) solo da LUL. El siguiente intento:
Programa de ejemplo (probado con GCC en OSX):
Da salida
fuente
Mathematica,
6968 bytes¡Gracias a Martin Ender por guardar 1 byte difícil de encontrar!
Función sin nombre que toma un argumento entero no negativo y devuelve una cadena.
Nest
aplica una función repetidamente a un argumento inicial; en este caso, la función es rodear su argumento con las palabras y comillas apropiadas. Comenzamos"LUL"
e iteramosN+1
veces; eso da como resultado comillas no deseadas que encierran la frase completa, pero[[2]]
mantiene solo el contenido entre ellas. Al final,""<>
convierte la lista anidada resultante en una sola cadena.Presentación previa:
fuente
LUL
:""<>Nest[{q="\"",{"One more ",#," and I'm out"},q}&,"LUL",#+1][[2]]&
[[2]]
! Así es como evitar esas primeras citas no deseadas: DC #,
1198571 bytesGuardado 14 bytes gracias a @Luc
fuente
string.Format
yRetina , 51 bytes
Pruébalo en línea!
fuente
R, 97 bytes
Sin golf:
fuente
R,
100 9792 bytes"Una función recursiva más y estoy fuera"
Editar: Resulta que un enfoque no recursivo es ligeramente más corto:
fuente
Japt , 39 bytes
Gracias @ETHproductions por ayudar.
Pruébalo aquí!
fuente
Ruby, 51 bytes
Un índice. Pruébalo en línea
fuente
PowerShell ,
7267 bytesPruébalo en línea!
fuente
"$('"One more '*($c=1+"$args"))LUL$(' and I''m out"'*$c)".Trim('"')
5 afeitado mediante el uso de un recorte () en lugar de una unión para saltar al final"
'sLua, 101 bytes
Obvio intento de cuerda. Repite
"One more
e ingresaand I'm out"
exactamente + 1 veces, con unLUL
intermedio, luego elimina la primera y la última cita.fuente
Haskell, 51 bytes
Índices de 1.
fuente
LUL
entre comillas.f -1="LUL"
, pero no veo cómo eliminar comillas adicionales sin un montón de símbolos nuevos.Ruby, 70 bytes
Simplemente recorra la cantidad que se le da, rodeando la última cadena a través de una cadena de formato cada vez.
El índice comienza en uno.
fuente
Apilado, 54 bytes
Pruébalo aquí! Ejemplo de uso de "función":
Uno para 56 bytes:
fuente
Python 3, 68 bytes
def f(a):return('"One more '*a+'LUL'+(' and I%sm out"'%"'")*a)[1:-1]
fuente
*a
lugar de*5
?CJam,
5149 bytesPruébalo en línea
Sin golf:
fuente
W
lugar de -1 para guardar un byte\"
tener una sola cadena y agregando el"
a ambos extremos con`
. Luego necesitaba dividir la cadena que no podía hacer con una longitud y/
, porque la primera parte es más corta. Así que usé un salto de línea como separador y lo hiceN/
. Como ahora tenemos ambas partes en una lista, podemos repetirlas fácilmente a la vez conf*
. YLUL
se inserta al final con una combinación simple (*
).Groovy, 54 bytes
Bastante sencillo, igual que la respuesta de Python pero 2 bytes más corto. También está indexado en 1.
Pruébalo en línea!
fuente
Mathematica,
6563 BytesDos bytes desactivados al notar el desafío permiten la indexación 1.
fuente
PHP
Hola, encontré hasta ahora dos formas de hacer esto.
La forma de reemplazo 1 indexado (121 bytes) .
La forma recursiva (86 bytes) .
fuente
C ++, 80 + 16 = 96 bytes
#include<string>
- +16Sin golf:
Se llama recursivamente y usa la suma de cadenas. Muy claro. Quiero decir, ¿qué más puedo decir? Incluso la versión sin golf es esencialmente un trazador de líneas.
Pruébalo en línea!
fuente
Cheddar , 71 bytes
Pruébalo en línea!
fuente
_ f ->
sintaxis que puede ahorrar algunos bytes