Sie bieten auf den technischen Support der Bruce Dickenson als er eine Blue Öyster Cult Aufnahme - Session erzeugt. Wenn er nach mehr Kuhglocke fragt , kannst du sie ihm geben.
Deine Aufgabe
Schreiben Sie ein Programm oder eine Funktion, die eine Zeichenfolge (oder eine Entsprechung in Ihrer Sprache) als Eingabe verwendet und eine zugehörige Zeichenfolge ausgibt, die eine weitere Kuhglocke enthält.
Wie viele Kuhglocken enthält eine Schnur?
Die Anzahl der Kuhglocken, die eine Zeichenfolge enthält, entspricht der maximalen Anzahl unterschiedlicher Kopien von "Kuhglocken", die durch Permutieren der Zeichenfolgen erhalten werden können. Zum Beispiel "bbbccceeellllllooowwwwwwwww"
enthält 3 cowbells, während "bbccceeellllllooowwwwwwwww"
und "bbbccceeelllllooowwwwwwwww"
jeweils 2 cowbells enthalten und "cowbel"
enthält 0 cowbells.
In welcher Beziehung soll der Output zum Input stehen?
Die Ausgabe sollte aus der Verkettung der Eingabezeichenfolge und dem kürzesten Präfix der Eingabezeichenfolge in dieser Reihenfolge bestehen, die zum Erhöhen der Anzahl der Kuhglocken erforderlich sind.
Beispielsweise "bbbccceeelllllooowwwwwwwww"
benötigt nur eine zusätzliche "l"
, um 3 Kuhglocken anstelle von 2 zu enthalten; das kürzeste Präfix, das das enthält, "l"
ist "bbbccceeel"
. Wenn also der Eingang ist "bbbccceeelllllooowwwwwwwww"
, sollte der Ausgang sein "bbbccceeelllllooowwwwwwwwwbbbccceeel"
.
Technische Details
- Sie können davon ausgehen, dass die Eingabe nur druckbare ASCII-Zeichen enthält. Wenn ein oder zwei Zeichen für die Verarbeitung von Zeichenfolgen in Ihrer Sprache störend sind (z. B. Zeilenumbrüche oder
\
), können Sie davon ausgehen, dass die Eingabe diese Zeichen nicht enthält. Erwähnen Sie einfach diese Einschränkung. - Sie können außerdem davon ausgehen, dass die alphabetischen Zeichen in der Eingabe entweder in Klein- oder in Großbuchstaben eingegeben werden. Wenn Sie keine davon annehmen, zählen Sie die Kuhglocken ohne Berücksichtigung der Groß- und Kleinschreibung.
- Sie übernehmen kann ferner , dass die Eingabe mindestens eine Kopie von jedem der Zeichen enthält
b
,c
,e
,l
,o
, undw
. Dies entspricht der Annahme, dass ein Präfix der Zeichenfolge mit dieser verknüpft werden kann, um eine Zeichenfolge mit mehr Cowbell zu erstellen. (Beachten Sie, dass die Eingabezeichenfolge selbst keine Kuhglocke enthalten muss.) - Wenn deine Sprache ein eingebautes Programm hat, das dieses Problem löst, dann benutze es total, ernsthaft, wie großartig ist das?
Vergoldete Windeln
Da die Aufnahmezeit im Studio teuer ist, muss Ihr Code so kurz wie möglich sein. Der Eintrag mit den wenigsten Bytes ist der Gewinner!
Testfälle
( Pastebin-Link zum leichteren Kopieren / Einfügen)
Testeingang 1: "christopher walken begs for more cowbell!"
Testausgang 1: "christopher walken begs for more cowbell!christopher wal"
Testeingang 2: "the quick brown fox jumps over the lazy dog"
Testausgang 2: "the quick brown fox jumps over the lazy dogthe quick brown fox jumps over the l"
Testeingang 3: "cowbell"
Testausgang 3: "cowbellcowbell"
Testeingang 4: "cowbell cowbell cowbell"
Testausgang 4: "cowbell cowbell cowbellcowbell"
Testeingang 5: "cowbell cowbell cowbel"
Testausgang 5: "cowbell cowbell cowbelcowbel"
Testeingang 6: "bcelow"
Testausgang Nr. 6: "bcelowbcel"
Testeingang Nr. 7: "abcdefghijklmnopqrstuvwxyz"
Testausgang Nr. 7: "abcdefghijklmnopqrstuvwxyzabcdefghijkl"
Testeingang 8: "cccowwwwbbeeeeelllll"
Testausgang 8: "cccowwwwbbeeeeelllllccco"
Testeingang 9: "be well, programming puzzles & code golf"
Testausgang 9: "be well, programming puzzles & code golfbe well, programming puzzles & c"
Testeingang Nr. 10: "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!"
Testausgang 10: "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lab"
Testeingang Nr. 11:
"c-c-b-c
i have a cow, i have a bell.
uh! bell-cow!
i have a cow, i have a cowbell.
uh! cowbell-cow!
bell-cow, cowbell-cow.
uh! cow-cowbell-bell-cow.
cow-cowbell-bell-cow!
"
Testausgang Nr. 11:
"c-c-b-c
i have a cow, i have a bell.
uh! bell-cow!
i have a cow, i have a cowbell.
uh! cowbell-cow!
bell-cow, cowbell-cow.
uh! cow-cowbell-bell-cow.
cow-cowbell-bell-cow!
c-c-b-c
i have a cow, i have a bell"
test case -> result
ein großer vorformatierter Codeblock verwendet. Ästhetisch ist es viel schöner und das Kopieren und Einfügen ist einfacher.
L
s in dem Wort gibt, ist dies nicht das, was die Herausforderung fragt.