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 wickas und wubs. Die Anzahl von wickas sollte so groß sein wie die Länge des ersten Teils der Eingabeliste (dh ["D", "J"] -> ["wicka", "wicka"]), und die Anzahl von wubssollte 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/ wubListe 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-wubZeichenfolge 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 Mzweimal, dann cdreimal und die nächsten Mvier 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
wickaoderwubin 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
5Großbuchstaben hinzufügen ?
foobarbazeinfach zurückkehren foobarbaz? Gibt es überhaupt einen zweiten Teil?