Geschichte
Haben Sie diesen Beitrag von 9gag gesehen ? Vielleicht hast du das Gefühl, deine eigenen Sätze zu bilden. Aber dann merkt man, dass man in einer halben Stunde nur ein Drehbuch spielen kann, und man muss sich nie damit auseinandersetzen.
Die Vorlage
Ihr Programm erhält eine Eingabezeichenfolge, die in Anführungszeichen gesetzt wird (siehe unten). Standardlücken sind verboten. Die Ausgabe als Zeilenliste ist zulässig. Leerzeichen und Leerzeilen, die die Ausgabe nicht unterbrechen, sind zulässig.
Die Regeln der Eingabe
- Die Eingabe enthält nur druckbare ASCII-Zeichen.
- Die Eingabe kann Leerzeichen enthalten. Die Wörter werden mit ihnen bestimmt.
- Es ist garantiert, dass einem Leerzeichen niemals ein anderes Leerzeichen folgt.
- Der Fall, dass keine Eingabe oder leere Zeichenfolge vorhanden ist, spielt keine Rolle.
Die Regeln der Ausgabe
Wenn ein Wort angegeben wird, muss das Programm die Zeichenfolge zwischen Anführungszeichen zurückgeben.
Wenn die Eingabezeichenfolge 2 oder mehr Wörter enthält, wird zuerst die ursprüngliche Eingabe zurückgegeben, das erste Wort befindet sich jedoch in Anführungszeichen. In der nächsten Zeile wird dann die ursprüngliche Eingabe zurückgegeben, jedoch mit dem zweiten Wort in Anführungszeichen. Und so weiter für die restlichen Wörter.
Im Allgemeinen muss das Programm so viele Zeilen zurückgeben, wie Wörter in der Eingabe enthalten sind.
Beispiele:
test -> "test"
This is codegolf -> "This" is codegolf
This "is" codegolf
This is "codegolf"
This is a significantly longer, but not the longest testcase -> "This" is a significantly longer, but not the longest testcase
This "is" a significantly longer, but not the longest testcase
This is "a" significantly longer, but not the longest testcase
This is a "significantly" longer, but not the longest testcase
This is a significantly "longer," but not the longest testcase
This is a significantly longer, "but" not the longest testcase
This is a significantly longer, but "not" the longest testcase
This is a significantly longer, but not "the" longest testcase
This is a significantly longer, but not the "longest" testcase
This is a significantly longer, but not the longest "testcase"
Here is an another one -> "Here" is an another one
Here "is" an another one
Here is "an" another one
Here is an "another" one
Here is an another "one"
Das ist Code-Golf , also gewinnt die Antwort mit dem geringsten Byte!
"
Zeichen enthält ?''
,‘’
oder“”
, statt""
?Antworten:
vim, 38 bytes
Probieren Sie es online!
Benötigt das Vim-Surround-Plugin .
Wenn die Eingabe keine
"
Zeichen enthält , kann dies in 19 Bytes erfolgen :Hier zeichnen wir ein rekursives Makro (
qq ... @qq@q
) auf, das ein Wort mit Anführungszeichen ( ) umgibtysW"
, die Zeile (Yp
) dupliziert und die Anführungszeichen löscht (ds"
) und zum nächsten Wort (W
) wechselt, bevor aufrufen. Nach dem Beenden gibt es zwei Nebenzeilen, die mit gelöscht werdendk
.Die vollständige Lösung
:s/"/<C-d>/g
schließt dies einfach am Anfang"
mit ein , wobei vorhandene Zeichen durch ein nicht druckbares Zeichen ersetzt werden und:%s/<C-d>/"/g
am Ende die Ersetzung rückgängig gemacht wird.quelle
Haskell, 65 Bytes
Gibt eine Liste von Zeilen zurück.
Probieren Sie es online!
quelle
\n
Leerzeichen betrachtet werden, verhält es sich nicht ordnungsgemäß, wenn es vorhanden ist.~
. Msgstr "Die Eingabe darf Leerzeichen enthalten" - nicht "Leerzeichen".Retina 0.8.2 , 17 Bytes
Probieren Sie es online! Link enthält Testsuite. Erläuterung:
Erweitern Sie jedes Leerzeichen, indem Sie die Zeile duplizieren und dann Anführungszeichen einfügen.
Korrigieren Sie die erste und letzte Zeile.
quelle
Jelly ,
15 bis14 BytesProbieren Sie es online!
Wie?
quelle
JavaScript (ES6),
43 42 4138 ByteSaved 3 bytes thanks to @mazzy
Uses the non-standard but widely supported
RegExp.leftContext
andRegExp.rightContext
. That's a lot of different quotes...Try it online!
quelle
This is a significantly "longer,"...
/(\S+)/g
work?Java,
235 183132 bytes-52 bytes by abusing a variety of things (static access, list vs array, print instead of returning, etc. Thanks @ValueInk!)
-51 bytes by beung lazy and letting @KevinCruijssen do the work for me
Try it online
quelle
java.util.Arrays.copyOfRange
. If you utilizejava.util.List
you can usesubList
for shorter, and print to STDOUT instead of building an array. I got 193 bytes with those ideas, and also abusing the var keyword.String.join
withs.join
for those extra IDE warnings (and -10 bytes).First code golf attempt hopefully it's not terrible and hopefully it's not rule breaking
Kotlin,
105112147117 bytes/charsTry it online!
quelle
05AB1E, 14 bytes
Try it online!
+1 byte (and it works for the edge case) thanks to Emigna. -1 byte thanks to Kevin!
quelle
ð¡
to handle input such astest
.»
.JavaScript,
91977578 bytesOutputs a list of lines as a JavaScript array. The last entry has a trailing space as allowed in the question. The test code writes each entry to the console on a separate line for demonstration purposes.
Thanks to Shaggy for 19 bytes off and no leading spaces - when the spread operator is used on an empty array to initialize an array literal, no slots are created in the array produced by the spread operator:
(The 91 byte version had a leading space on the first line, the 97 byte version took 6 bytes to remove it.)
quelle
f
function. Otherwise verified. Good job!Python 3,
79,69, 65 bytesTry it online!
Shaved 10 bytes thanks to xnor. And now this is 65 bytes as per Erik the Outgolfer solution. Program ends with IndexError but this is fine.
quelle
print(*l)
in Python 3 in place ofprint(" ".join(l))
.w
toinput().split()
, assign it toinput()
, then, in thewhile
loop, assignm
tow.split()
, which will create a new list at each iteration to avoid reference issues, then setm[i]
to'"%s"'%m[i]
andprint(*m)
.Java 8,
72716762 bytesTry it online.
Explanation:
Regex explanation:
quelle
Ruby with
-an
, 53 bytesThe flags
-an
are read each line and split to$F
.Try it online!
quelle
Rubin , 98 Zeichen.
Erste Einreichung überhaupt. Dies kann definitiv verkürzt werden. Ich wollte nur schnell eine Antwort bekommen.
Probieren Sie es online!
quelle
s.split
eine Variable zu speichern und den Index zu bearbeiten, um den sich die Anführungszeichen befinden sollen, anstatt die zu ausführliche Sprache zu verwendeneach_with_index.map
. Sie können das anonyme Lambda auch ohne Namensnennung übermitteln, und der Join kann durch einen*
Operator ersetzt werden. Dies verringert Ihre Byteanzahl auf 64 Bytes.Perl 6 ,
4340 BytesProbieren Sie es online!
Stimmt mit allen möglichen Wörtern überein und fügt dann jede Liste in Anführungszeichen ein. Dies könnte ein Byte kürzer sein, wenn wir die Zeilen in umgekehrter Reihenfolge ausgeben könnten.
Erläuterung:
quelle
Reflexionen , 229 Bytes
Probier es aus!
Ich habe dies "schnell" in einer "lustigen" "Golf" -Sprache "golfen".
Wenn man das ganze Leerzeichen betrachtet, könnte es wahrscheinlich kürzer sein.
quelle
Haskell , 64 Bytes
Probieren Sie es online!
Gibt eine Liste von Zeichenfolgen aus. Basierend auf Nimis Antwort .
quelle
\n
oder enthält"
.Stax , 10 Bytes
Führen Sie es aus und debuggen Sie es
Ausgepackt, ungolfed und kommentiert sieht es so aus.
Führen Sie dieses aus
quelle
C (gcc) ,
136133 BytesDa die Tokenisierungsfunktionen von C die Zeichenfolge bei zukünftigen Lesevorgängen durcheinander bringen würden, berechne ich stattdessen die Anzahl und die Offsets für jedes Wort und beende den Vorgang, wenn die Gesamtzahl der Iterationen der äußeren Schleife mit der Anzahl der Wörter übereinstimmt.
Probieren Sie es online!
quelle
"\""+!!(i-++j)
füri-++j?"":"\""
spart ein Byte.PowerShell ,
604036 Byte-20 Bytes, inspiriert von Arnauld
Probieren Sie es online!
Das Ergebnis enthält ein zusätzliches Leerzeichen und eine leere Zeile im Schwanz.
PowerShell, kein regulärer Ausdruck, 60 Bytes
Probieren Sie es online!
Weniger golfen:
quelle
The input only contains printable ASCII characters.
, 2The input may contain spaces
.. Tabs und andere Whitespaces sind nicht druckbar, oder? :)JavaScript, 62 Bytes
Vielen Dank an @Shaggy für das Golfen mit 10 Bytes
Erläuterung
quelle
Java (JDK) , 104 Byte
Probieren Sie es online!
quelle
R ,
9476 Bytes-18 Bytes dank Giuseppe
Probieren Sie es online!
Vielen Dank an digEmAll für die korrekte Einrichtung des TIO. Es nimmt zB auf
This is codegolf
und gibt richtig ausEs wird ein Matrixformat verwendet, bei dem der Satz
n
mehrmals vorkommt. dann müssen wir nur noch die diagonalen einträge ändern. Beachten Sie, dass in der Regel in R-Code-Golf Zeichenfolgen mit eingelesen werdenscan(,"")
, aber eine beliebige Zeichenfolge anstelle der leeren Zeichenfolge alswhat
(oderw
) -Parameter verwendet werden kann.Erklärung der alten ungolfed version:
quelle
scan
?""
, können wir reduzieren 68 Byte verwendetsQuote
.Dies ist mein erster Code Golf. hoffentlich ist es nicht scheiße.
BEARBEITEN: mit einem besseren regulären Ausdruck auf 54 Bytes reduziert.
** BEARBEITEN 2: pro Vorschläge, Fehler behoben und kürzer gemacht **
JavaScript (V8) , 46 Byte
Probieren Sie es online!
quelle
C # (Visual C # Interactive Compiler) mit
/u:System.Text.RegularExpressions.Regex
Flag,59 bis40 BytePort meiner Java 8 Antwort , schauen Sie dort nach einer Erklärung.-19 Bytes durch Portierung von @Arnauld 's Regex , seit dem
$`
und$'
in C # unterstützt werden.Probieren Sie es online aus.
quelle
Ulme Unter Verwendung der Rekursion
132.130.121.111.10099 BytesDank Kevin Cruijssen- Technik 9 Bytes weniger als erwartet , und weitere 22 Bytes wurden nur von ASCII geknackt . Rekursion ohne Schwanz während des Golfspiels.
Probieren Sie es online aus
85 Bytes, nachdem
String
Funktionen dem aktuellen Bereich ausgesetzt wurdenUngolfed-Version (Verwendung der Schwanzrekursion)
Versuchen Sie es ungolfed
quelle
Japt ,
1412 BytesVersuch es
2 Bytes gespart dank Oliver.
quelle
PowerShell ,
70 bis65 ByteProbieren Sie es online!
Test-Suite in Prüfung. Hat 1 Leerzeichen in der ersten Zeile und 1 Leerzeichen in der letzten Zeile. Versuch einer Umgestaltung.
quelle
Holzkohle , 19 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Hinweis: Leerzeichen am Ende. Erläuterung:
quelle
Attache , 34 Bytes
Probieren Sie es online!Anonyme Funktion, die eine Liste von Zeilen zurückgibt.
Erläuterung
quelle
C # (Visual C # Interactive Compiler) , 123 Byte
Ich frage mich, ob dies mit regulären Ausdrücken verkürzt werden kann.
Probieren Sie es online!
quelle