Wenn eine Zeichenfolge als Eingabe nur aus Groß- und Kleinbuchstaben besteht, wicka-wub sie.
Wie wicka-wub ich eine Schnur?
Der verwendete Beispieltext lautet "DJMcMayhem".
Teilen Sie die Zeichenfolge vor jedem Großbuchstaben, damit Sie erhalten ["D", "J", "Mc", "Mayhem"]
.
Nehmen Sie als nächstes die beiden Hälften der Liste als Unterlisten. Das gibt uns [["D", "J"],["Mc", "Mayhem"]]
. Wenn die Liste eine ungerade Länge hat (dh 3), enthält die erste Unterliste den mittleren Teilstring (dh [[a,b], [c]]
).
Erstellen Sie eine Liste von wicka
s und wub
s. Die Anzahl von wicka
s sollte so groß sein wie die Länge des ersten Teils der Eingabeliste (dh ["D", "J"] -> ["wicka", "wicka"]
), und die Anzahl von wubs
sollte so groß sein wie die Länge des zweiten Teils der Eingabeliste. In unserem Fall gibt dies ["wicka", "wicka", "wub", "wub"]
.
Fügen Sie nun die Unterlisten der Eingabeliste zu einzelnen Zeichenfolgen zusammen und reduzieren Sie sie.
Wir haben derzeit ["DJ", "McMayhem"]
und ["wicka", "wicka", "wub", "wub"]
.
Verbinden Sie die wicka
/ wub
Liste mit -
s : wicka-wicka-wub-wub
. Stellen Sie a vor -
. Wenn die Eingabe mehr als einen Großbuchstaben enthält, fügen Sie einen anderen hinzu -
.
Jetzt haben wir ["DJ", "McMayhem"]
und "-wicka-wicka-wub-wub-"
.
Hängen Sie die wicka-wub
Zeichenfolge an das Ende des ersten Elements in der Eingabeliste an, um zu erhalten ["DJ-wicka-wicka-wub-wub-","McMayhem"]
.
Zuletzt wiederholen Sie die Zeichen im zweiten Teil der Zeichenfolge mit ihrem 0-indizierten Wert in der ursprünglichen Eingabezeichenfolge. In unserem Beispiel bedeutet dies, dass die erste M
zweimal, dann c
dreimal und die nächsten M
vier Mal wiederholt wird . Treten Sie der Liste bei, sodass der zweite Teil (der Teil, in dem Sie gerade Buchstaben wiederholt haben) an den ersten Teil ( "DJ-wicka-wicka-wub-wub-"
) angehängt wird .
Endergebnis der Eingabe:
"DJ-wicka-wicka-wub-wub-MMcccMMMMaaaaayyyyyyhhhhhhheeeeeeeemmmmmmmmm"
Gesamtprozess:
["D", "J", "Mc", "Mayhem"] =>
[["D", "J"], ["Mc", "Mayhem"]] =>
["DJ", "McMayhem"] and ["wicka", "wicka", "wub", "wub"] =>
["DJ", "McMayhem"] and "-wicka-wicka-wub-wub-" =>
["DJ-wicka-wicka-wub-wub-", "McMayhem"] =>
"DJ-wicka-wicka-wub-wub-MMcccMMMMaaaaayyyyyyhhhhhhheeeeeeeemmmmmmmmm"
Deine Aufgabe
Ihre Aufgabe besteht darin, bei einer Zeichenfolge, die nur aus Groß- und Kleinbuchstaben besteht, die Wicka-Wubbed-Version dieser Zeichenfolge auszugeben.
Ein paar Regeln
- Die Eingabe kann vollständig aus Kleinbuchstaben oder vollständig aus Großbuchstaben oder einer beliebigen Anzahl von Buchstaben bestehen, jedoch aus keinen anderen Zeichen.
- Wenn die Eingabe nur aus Kleinbuchstaben besteht, sollte die korrekte Ausgabe einfach die letzte Stufe sein (die Zeichenfolge mit den Zeichen, die entsprechend ihrer 0-indizierten Position wiederholt werden). Es sollte keine
wicka
oderwub
in diesem Fall geben. - Es gelten Standardregeln, vollständige Programme oder Funktionen, bis zu Ihnen.
- Das ist ein Code-Golf so gewinnt kürzester Code.
GoodLuck-wicka-wicka-wub-GGGGGGGGooooooooollllllllllfffffffffffeeeeeeeeeeerrrrrrrrrrrrrssssssssssssss
Testfälle
input => output
DJMcMayhem => DJ-wicka-wicka-wub-wub-MMcccMMMMaaaaayyyyyyhhhhhhheeeeeeeemmmmmmmmm
PPCG => PP-wicka-wicka-wub-wub-CCGGG
foobarbaz => fooooobbbbaaaaarrrrrrbbbbbbbaaaaaaaazzzzzzzzz
FooBarBaz => FooBar-wicka-wicka-wub-BBBBBBaaaaaaazzzzzzzz
HelloWorld => Hello-wicka-wub-WWWWWoooooorrrrrrrllllllllddddddddd
Test => Test-wicka
UPPER => UPP-wicka-wicka-wicka-wub-wub-EEERRRR
fooBarBaz => fooBar-wicka-wicka-wub-BBBBBBaaaaaaazzzzzzzz
5
Großbuchstaben hinzufügen ?foobarbaz
einfach zurückkehrenfoobarbaz
? Gibt es überhaupt einen zweiten Teil?Antworten:
Java 8 (782 Bytes)
Ungolfed:
quelle
Perl 5 , 142 Bytes
130 Bytes Code + 12 für
-F(?=[A-Z])
.Dies stimmt nun korrekt mit allen bereitgestellten Testfällen überein.
Probieren Sie es online aus!
Hinweis : TIO umfasst
-l
das gleichzeitige Ausführen aller Tests.quelle
Kotlin 1.1 -
494492 BytesEinreichung
Prüfung
Laufen
Funktioniert unter KotlinLang, jedoch nicht unter TryItOnline, da 1.1 nicht unterstützt wird
Lief durch meinen Kompressor, sparte 2 Bytes
quelle
Python 3 ,
234281270248246 BytesProbieren Sie es online aus!
47 Bytes hinzugefügt, danke an Mr. Xcoder;)
Dank Jonathan Frech wurden 11 Bytes gespeichert
Dank Halvard Hummel wurden 22 Bytes gespeichert
Dank Mr. Xcoder wurden 2 weitere Bytes gespeichert
quelle
foobar
.