Es ist offensichtlich ellipsisessieses.
Inspiriert von einer Chat-Nachricht .
Deine Herausforderung
Wenn Sie eine Liste, ein Leerzeichen oder eine durch Kommas getrennte Wortfolge angegeben haben, können Sie diese durch Auslassungspunkte kennzeichnen.
Um ellipsisessieses-ify ein Wort:
- Beginnen Sie mit dem Wort.
- Fügen Sie den ersten Buchstaben des ursprünglichen Wortes am Ende hinzu.
- Fügen Sie am Ende 2 des letzten Buchstabens des ursprünglichen Wortes hinzu.
- Fügen Sie den vorletzten Buchstaben des ursprünglichen Wortes am Ende hinzu.
- Fügen Sie den ersten Buchstaben des ursprünglichen Wortes am Ende hinzu.
- Fügen Sie den letzten Buchstaben des ursprünglichen Wortes am Ende hinzu.
- Wiederholen Sie die Schritte 5 und 6 einmal.
- Sie sind fertig!
Sie können annehmen:
- Die eingegebenen Wörter sind nur alphanumerisch
- Eingabe und Ausgabe können durch Leerzeichen getrennte Zeichenfolgen oder Listen sein
- Die Eingabe enthält nur Wörter
- Die Wörter werden mindestens 2 Buchstaben lang sein
- Die Eingabe entspricht dem regulären Ausdruck
/^[a-z0-9]{2,}( [a-z0-9]{2,})*$/i
- Sie können ein anderes Eingabe- und Ausgabeformat haben
- Da kommt noch mehr...
Testfälle:
ellipsis -> ellipsisessieses
goat -> goatgttagtgt
covfefe -> covfefeceefcece
programmer5000 -> programmer5000p000p0p0
up vote down goat -> upuppuupup voteveetveve downdnnwdndn goatgttagtgt
it is golf yo -> itittiitit isissiisis golfgfflgfgf yoyooyyoyo
crossed out 44 is still 44 -> crossedcddecdcd outottuotot 4444444444 isissiisis stillslllslsl 4444444444
Shorteststtsstst answerarrearar ininniinin bytesbssebsbs winswssnwsws!
Antworten:
JavaScript (ES6),
5857 BytesNB: Es stellt sich heraus, dass in dieser Gelee-Antwort derselbe Trick wie bei Jonathan Allan verwendet wird (obwohl ich das nach dem Posten bemerkt habe).
Dank Jonathan Allan 1 Byte gespeichert
Funktioniert mit Arrays von Strings.
Testfälle
Code-Snippet anzeigen
quelle
21102121
mit01120101
undn-2
mit ersetzen-n
.Jelly ,
13 1211 BytesEin vollständiges Programm, das eine Liste von Zeichenlisten aufnimmt und die durch Leerzeichen getrennte Ausgabe druckt.
Probieren Sie es online!
Wie?
Alternativ ist auch eine Wortliste zur Wortliste in 11 Bytes möglich :
⁽×ʠb3’
kann auch durch4,⁵Bj-
für die gleiche Byteanzahl ersetzt werden(
[4,10]
in der Binärdatei wird[[1,0,0],[1,0,1,0]]
durch-1
is verbunden[1,0,0,-1,1,0,1,0]
).quelle
K
da die zurückgegebene Liste als monadischer Link keine wäre level deep, was ich mir vorstelle, drückt lax I / O zu weit - das heißt, für eine Eingabe["this", "is", "it"]
wäre der Rückgabewert[['t','h','i','s',"tssitsts"],['i','s',"issiisis"],['i','t',"ittiitit"]]
(wobei "..." Listen von Zeichen sind) und ein Ausdruck als vollständiges Programm würde es zerschlagen alle zusammen alsthistssitstsisissiisisitittiitit
)05AB1E , 12 Bytes
Probieren Sie es online!
Erläuterung
quelle
Retina ,
5249 Bytes3 Bytes danke an Arnauld.
Probieren Sie es online!
quelle
Python 2 , 56 Bytes
Probieren Sie es online!
Ich denke, das ist meine schnellste FGITW und es ist nicht einmal so beeindruckend. : P
quelle
Python 3 , 60 Bytes
Probieren Sie es online!
quelle
Holzkohle , 20 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Nur zufällig @ Arnauld's Antwort gelesen, nachdem dies codiert wurde, aber dies ist im Grunde eine Portierung davon. Erläuterung:
quelle
-rs
Flag keine zusätzlichen Bytes hinzufügen ?-rs
Gibt es nur, um das Drucken der Eingabeaufforderung zu deaktivieren-rs
stattdessen einfach den Modus als Standard festlegen?sed, 46 bytes
Probieren Sie es online!
quelle
JavaScript (ES6),
7460 BytesNimmt Eingaben als Array und gibt ein Array aus.
-9 Bytes dank Programmer5000
Testfälle:
Code-Snippet anzeigen
quelle
Mathematica, 89 Bytes
quelle
Ellipsisessieses
eingebaut? :(Pyth , 17 Bytes
Verwendet den gleichen Trick wie in @ Jonathans Antwort .
Probieren Sie es hier aus! oder Schauen Sie sich die Testsuite an (nehmen Sie sich etwas Zeit).
Port meiner Python-Lösung,
19 Bytes18 Bytes :quelle
Dyalog APL,
5149 BytesBenötigt
⎕ML←3
-9 Bytes dank @ Adám im Chat!
Probieren Sie es online!
quelle
Paradoc (v0.2.10), 13? Bytes (CP-1252)
Probieren Sie es online!
Nimmt eine Liste von Wörtern und führt zu einer Liste von Wörtern auf dem Stapel.
Eine kleine Variation des Base-3-Tricks. Vielleicht ist es Zeit, an meinem 250er-Kompressor zu arbeiten.
Erläuterung:
(Frage zur Byte-Zählung: Da ich dies jetzt in TIO demonstriere, werden eine Liste von Wörtern auf dem Stapel und eine Liste von Wörtern auf dem Stapel erstellt, aber mit dieser Liste von Wörtern kann man nicht wirklich viel anfangen es sei denn, Sie schließen den von µ gestarteten Block. Soll ich diese schließende Klammer zählen?)
quelle
Wolfram Language / Mathematica, 66 Bytes
Einfach ganz schnell aufpeppen, könnte hier oder da eine kleine Verbesserung haben.
quelle
Perl 5 ,
5549 + 1 (-a) =5650 Byteshat einen Trick von @ Arrnauld's Post benutzt, um ein paar Bytes zu retten
Probieren Sie es online!
quelle
Kohle ,
3830 Bytes-8 Bytes nur dank ASCII.
Probieren Sie es online! Link ist zur ausführlichen Version.
Beachten Sie das nachfolgende Leerzeichen.
quelle
Java 8, 117 Bytes
Nimmt die Eingabe als String-Array und modifiziert dieses ursprüngliche Array, anstatt ein neues zurückzugeben, um Bytes zu sparen.
Kann höchstwahrscheinlich noch mehr golfen werden ..
Erläuterung:
Probieren Sie es hier aus.
quelle
C # (.NET Core) , 106 Byte
Probieren Sie es online!
Lambda-Funktion, die Eingaben als Array von Zeichenfolgen verwendet und das ursprüngliche Array für die Ausgabe ändert
quelle