Jesteś zapewniając wsparcie techniczne dla tej Bruce Dickenson jak on wytwarza sesję nagraniową Blue Oyster Cult. Gdy poprosi o więcej dzwonków , możesz mu je dać.
Twoje zadanie
Napisz program lub funkcję, która pobiera ciąg (lub odpowiednik w Twoim języku) jako dane wejściowe i wyświetla powiązany ciąg zawierający jeszcze jeden dzwonek.
Ile dzwonków zawiera sznurek?
Liczba dzwonków zawiera ciąg znaków równa się maksymalnej liczbie wyraźnych kopii „dzwonka”, którą można uzyskać przez permutację znaków ciągu. Na przykład, "bbbccceeellllllooowwwwwwwww"zawiera 3 cowbells, a "bbccceeellllllooowwwwwwwww", a "bbbccceeelllllooowwwwwwwww"każdy z nich zawiera 2 cowbells i "cowbel"zawiera 0 cowbells.
W jaki sposób dane wyjściowe powinny być powiązane z danymi wejściowymi?
Dane wyjściowe powinny składać się z konkatenacji, w tej kolejności, łańcucha wejściowego i najkrótszego prefiksu łańcucha wejściowego potrzebnego do zwiększenia liczby dzwonków krowich.
Na przykład "bbbccceeelllllooowwwwwwwww"potrzebuje tylko jednego dodatkowego, "l"aby zawierał 3 dzwonki krowy zamiast 2; najkrótszy prefiks, który zawiera który "l"jest "bbbccceeel". Dlatego jeśli wejście jest "bbbccceeelllllooowwwwwwwww", to wyjście powinno być "bbbccceeelllllooowwwwwwwwwbbbccceeel".
Techniczne
- Możesz założyć, że dane wejściowe zawierają tylko drukowalne znaki ASCII. Jeśli jeden lub dwa znaki są irytujące w przetwarzaniu napisów w Twoim języku (np. Znaki nowej linii lub
\), możesz założyć, że dane wejściowe ich nie zawierają - wystarczy wspomnieć o tym ograniczeniu. - Możesz ponadto założyć, że wszystkie znaki alfabetu na wejściu są małe lub wszystkie wielkie. Jeśli zdecydujesz się nie zakładać jednego z nich, policz dzwonki bez rozróżniania wielkości liter.
- Możesz dodatkowo założyć, że sygnał wejściowy zawiera co najmniej jedną kopię każdego z bohaterów
b,c,e,l,o, iw. Jest to równoważne z założeniem, że jakiś prefiks łańcucha może zostać z nim połączony w celu wytworzenia łańcucha, który zawiera więcej dzwonków krowich. (Pamiętaj, że sam łańcuch wejściowy nie musi zawierać dzwonka). - Jeśli twój język ma wbudowane rozwiązanie, które rozwiązuje ten problem ... to używaj go całkowicie, naprawdę, jakie to niesamowite.
Pozłacane pieluchy
Ponieważ czas studia nagrań jest kosztowny, Twój kod musi być jak najkrótszy. Wpis z najmniejszą liczbą bajtów jest zwycięzcą!
Przypadki testowe
( link do wklejania dla łatwiejszego kopiowania / wklejania)
Wejście testowe nr 1: "christopher walken begs for more cowbell!"
Wyjście testowe nr 1: "christopher walken begs for more cowbell!christopher wal"
Wejście testowe nr 2: "the quick brown fox jumps over the lazy dog"
Wyjście testowe nr 2: "the quick brown fox jumps over the lazy dogthe quick brown fox jumps over the l"
Wejście testowe nr 3: "cowbell"
Wyjście testowe nr 3: "cowbellcowbell"
Wejście testowe nr 4: "cowbell cowbell cowbell"
Wyjście testowe # 4: "cowbell cowbell cowbellcowbell"
Wejście testowe nr 5: "cowbell cowbell cowbel"
Wyjście testowe nr 5: "cowbell cowbell cowbelcowbel"
Wejście testowe nr 6: "bcelow"
Wyjście testowe # 6: "bcelowbcel"
Wejście testowe nr 7: "abcdefghijklmnopqrstuvwxyz"
Wyjście testowe # 7: "abcdefghijklmnopqrstuvwxyzabcdefghijkl"
Wejście testowe nr 8: "cccowwwwbbeeeeelllll"
Wyjście testowe # 8: "cccowwwwbbeeeeelllllccco"
Wejście testowe nr 9: "be well, programming puzzles & code golf"
Wyjście testowe # 9: "be well, programming puzzles & code golfbe well, programming puzzles & c"
Wejście testowe nr 10: "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!"
Wyjście testowe nr 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"
Wejście testowe 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!
"
Wyjście testowe # 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 -> resultjednego dużego, wstępnie sformatowanego bloku kodu. Jest o wiele ładniejszy pod względem estetycznym i łatwiejszy do skopiowania.
Lw słowie są dwa , nie jest to wyzwanie.