Herausforderungsbeschreibung
Auf einigen Kanälen auf einer beliebten Streaming-Site twitch.tv neigen Menschen dazu, in Chats zu spammen , um Menschen dazu zu bringen, "LUL" zu spammen
One more LUL and I'm out
LUL ist ein beliebtes Emote, das verwendet wird, um auszudrücken, dass im Stream etwas Komisches passiert ist.
Bald zeigten feuchte Memes ihr Potenzial und eine Parodie der Copy-Pasta folgte:
One more "One more LUL and I'm out" and I'm out
Welches ist die gleiche Nachricht in sich verschachtelt. Bei einer nicht negativen Ganzzahl N
geben Sie die LUL-Nudeln N
nach dem folgenden Muster in sich selbst geschachtelt aus .
Es gelten die üblichen Code-Golf- Regeln, der kürzeste Code in Bytes gewinnt.
Sample Input / Output
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
Anmerkungen
- Führende / nachfolgende Zeilenumbrüche sind zulässig
- Die Kapitalisierung muss erhalten bleiben
- Ihr Code kann ein vollständiges Programm oder eine Funktion sein
- Anstatt zu drucken, können Sie eine Zeichenfolge oder eine Entsprechung in der Sprache Ihrer Wahl zurückgeben
- Sie können
1
statt von indexieren0
"
am Anfang und am Ende hinzufügen ?You Only YOLO once --> YOYOLOO. You Only YOYOLOO Once --> YOYOYOLOOO
usw. erweitert werden.Antworten:
Python 2 , 56 Bytes
Probieren Sie es online!
Es ist 1-indiziert
quelle
[1:-1]
am Ende die doppelten Anführungszeichen am Anfang und Ende trimmt?JavaScript,
57565452 BytesTestschnipsel:
Aus irgendeinem Grund ist das Snack-Snippet fehlerhaft, wenn die Eingabe erfolgt
0
, aber das funktioniert anders. Nenne es sof(4)
.Erläuterung
quelle
input
ist ein ungültiges HTML-Attribut. Möglicherweise möchten Sie dieses entfernen. Zweitens, weil die Eingabe als Zeichenfolge und nicht als Zahl verwendet wird. So"0"
ist Wahrheit, während sie0
falsch ist. Der einfachste Weg , das zu behandeln ist ein setzen+
vor ,this.value
wenn Sie es sind vorbei.input
Feld habe :).replace
.Befunge, 91 Bytes
Probieren Sie es online!
Dies ist eine Aufschlüsselung des Quellcodes, wobei die verschiedenen Komponenten hervorgehoben sind.
Wir beginnen damit, den Wiederholungszähler N zu lesen und zwei Duplikate davon im Speicher abzulegen.
Wir zählen dann das erste N herunter und legen mehrere Kopien von "und ich bin raus" in umgekehrter Reihenfolge auf den Stapel. Jedes weitere Exemplar wird durch ein Zitat vom vorherigen getrennt. Das Zitat wird mit der Sequenz generiert
90g
(im Grunde genommen wird eine Kopie aus der ersten Zeile der Quelle gelesen), da dies der kürzeste Weg ist, dies zu tun.Sobald diese erste Schleife abgeschlossen ist, drücken wir "LUL" auf den Stapel (technisch ist dies umgekehrt, aber es macht offensichtlich keinen Unterschied, wenn es sich um ein Palindrom handelt).
Dann haben wir eine weitere Schleife, die sich über den rechten Rand, links vom Spielfeld und dann wieder zurück schlängelt. Diesmal zählen wir das zweite N herunterSchieben Sie mehrere Kopien von "One more" auf den Stapel (wieder in umgekehrter Reihenfolge). Und wieder wird jede weitere Kopie mit einem Zitat von der vorherigen getrennt.
Sobald die zweite Schleife abgeschlossen ist, befindet sich die gesamte Phrase auf dem Stapel (in umgekehrter Reihenfolge), sodass wir sie einfach ausschreiben müssen.
quelle
"
. Vielen Dank für die Erklärung05AB1E ,
3029 BytesProbieren Sie es online!
Verschiedene Saitentypen scheinen sich nicht gut zu mischen, daher muss ich die Schleife aus irgendeinem Grund zweimal beenden.
quelle
C ++, 118 + 16 = 134 Bytes
#include<string>
- +16Ersetzt "LUL" N-mal durch die gesamte Zeichenfolge.
Hat jemand bessere Golfplätze?
Probieren Sie es online!
Massiver Dank an Kritixi Lithos und hvd für massive Hilfe.
quelle
<string>
Import-Anweisung in das bytecount aufnehmen, nicht sicherfor(int i=0;i<x;i++)
zu ändernfor(int i=0;i++<x;)
r.find("L")
ist kürzer alsr.find("LOL")
2 Bytes :)Javascript (ES6), 68 Bytes
Rufen Sie gerne an
f(n)
.Sie können es auch so nennen
f(n, "LUL")
und LUL durch ein beliebiges Wort ersetzen.quelle
V ,
3937 BytesZwei Bytes mit Hilfe von @KritixiLithos für die Erarbeitung der Substitutionsmethode
Probieren Sie es online!
Hexdump:
quelle
Java,
79.77BytesGolf gespielt:
Ungolfed, mit Test:
Programmausgabe:
quelle
"\""
in'"'
(einzelne Zeichen) ändern , um 2 Byte zu sparen.Python, 79 Bytes
Ich wollte nur eine rekursive Lösung erstellen, obwohl sie länger ist als andere Antworten.
Probieren Sie es online aus
quelle
C #, 125 Bytes
quelle
Format
... verwenden könnenstring
zuvar
, um zwei Bytes zu speichern.C,
140111 BytesMein erster Versuch einer Golffrage.
Mir ist klar geworden, dass die Ausgabe falsch ist, da q (0) nur LUL ergibt. Der nächste Versuch:
Beispielprogramm (getestet mit GCC unter OSX):
Gibt die Ausgabe aus
quelle
Mathematica,
6968 BytesVielen Dank an Martin Ender für das Speichern von 1 schwer auffindbaren Byte!
Unbenannte Funktion, die ein nichtnegatives ganzzahliges Argument verwendet und eine Zeichenfolge zurückgibt.
Nest
Wendet eine Funktion wiederholt auf ein Anfangsargument an. In diesem Fall besteht die Funktion darin, das Argument mit den entsprechenden Wörtern und Anführungszeichen zu umgeben. Wir beginnen"LUL"
und wiederholen dieN+1
Zeiten; das führt zu unerwünschten Anführungszeichen, die die gesamte Phrase einschließen, aber[[2]]
nur das Zeug zwischen sich behalten. Am Ende wird""<>
die resultierende stark verschachtelte Liste in eine einzelne Zeichenfolge umgewandelt.Vorherige Einreichung:
quelle
LUL
:""<>Nest[{q="\"",{"One more ",#," and I'm out"},q}&,"LUL",#+1][[2]]&
[[2]]
! So umgehen Sie die ersten unerwünschten Zitate: DC #,
1198571 Bytes14 Bytes gespart dank @Luc
quelle
string.Format
und es verschachteln kannNetzhaut , 51 Bytes
Probieren Sie es online!
quelle
R 97 Bytes
Ungolfed:
quelle
R
100 9792 Bytes"Noch eine rekursive Funktion und ich bin raus"
Bearbeiten: Es stellt sich heraus, dass ein nicht rekursiver Ansatz etwas kürzer ist:
quelle
Japt , 39 Bytes
Vielen Dank an @ETHproductions für Ihre Hilfe.
Probieren Sie es hier aus!
quelle
Ruby, 51 Bytes
Einindexiert. Probieren Sie es online aus
quelle
PowerShell ,
72 bis67 ByteProbieren Sie es online!
quelle
"$('"One more '*($c=1+"$args"))LUL$(' and I''m out"'*$c)".Trim('"')
rasiert 5 durch Verwendung eines trim () anstelle eines Joins zum Überspringen des Endes"
'sLua, 101 Bytes
Offensichtlicher Saitenversuch. Wiederholt
"One more
und gibtand I'm out"
genau + 1 Mal ein, mit einemLUL
dazwischen, und entfernt dann das erste und das letzte Anführungszeichen.quelle
Haskell, 51 Bytes
Indizes von 1.
quelle
LUL
Anführungszeichen falsch zu drucken .f -1="LUL"
, aber ich verstehe nicht, wie ich zusätzliche Anführungszeichen ohne eine Reihe neuer Symbole entfernen kann.Ruby, 70 Bytes
Durchlaufen Sie einfach die angegebene Menge und umgeben Sie die letzte Zeichenfolge jedes Mal mit einer Formatzeichenfolge.
Index beginnt um eins.
quelle
Gestapelt, 54 Bytes
Probieren Sie es hier aus! Beispiel für die Verwendung von "function":
Eine für 56 Bytes:
quelle
Python 3, 68 Bytes
def f(a):return('"One more '*a+'LUL'+(' and I%sm out"'%"'")*a)[1:-1]
quelle
*a
statt*5
?CJam,
5149 BytesProbieren Sie es online aus
Ungolfed:
quelle
W
anstelle von -1 ein Byte speichern\"
indem ich eine einzelne Zeichenfolge habe und die"
an beiden Enden mit hinzufüge`
. Dann musste ich die Saite teilen, was ich mit einer Länge und nicht machen konnte/
, weil der erste Teil kürzer ist. Also habe ich einen Zeilenvorschub als Trennzeichen verwendet und getanN/
. Da wir nun beide Teile in einer Liste haben, können wir beide leicht auf einmal mit wiederholenf*
. Und dasLUL
wird am Ende mit einem einfachen Join (*
) eingefügt .Groovy, 54 Bytes
Ganz einfach, genau wie die Python-Antwort, aber 2 Bytes kürzer. Es ist auch 1-indiziert.
Probieren Sie es online!
quelle
Mathematica,
6563 BytesZwei Bytes weniger, wenn Sie die Herausforderung bemerken, ermöglichen eine Indizierung von 1.
quelle
PHP
Hallo, ich habe bisher zwei möglichkeiten dafür gefunden.
Der Ersetzungsweg 1-indiziert (121 Bytes) .
Der rekursive Weg (86 Bytes) .
quelle
C ++, 80 + 16 = 96 Bytes
#include<string>
- +16Ungolfed:
Ruft sich selbst rekursiv auf und verwendet Stringaddition. Ziemlich einfach. Ich meine, was kann ich sonst noch sagen? Sogar die ungolfed Version ist im Wesentlichen ein Einzeiler.
Probieren Sie es online!
quelle
Cheddar , 71 Bytes
Probieren Sie es online!
quelle
_ f ->
Syntax, die möglicherweise einige Bytes