Vous fournissez un support technique à la Bruce Dickenson comme il produit une session d'enregistrement Blue Öyster Cult. Quand il demande plus de cloche , vous pouvez le lui donner.
Ta tâche
Ecrivez un programme ou une fonction prenant une chaîne (ou son équivalent dans votre langue) en entrée et générant une chaîne associée contenant une cloche supplémentaire.
Combien de clochettes une corde contient-elle?
Le nombre de clochettes qu'une chaîne contient contient le nombre maximal de copies distinctes de "clochette" pouvant être obtenues en permutant les caractères de la chaîne. Par exemple, "bbbccceeellllllooowwwwwwwww"
contient 3 clochettes, tandis "bbccceeellllllooowwwwwwwww"
que "bbbccceeelllllooowwwwwwwww"
chacune contient 2 clochettes et "cowbel"
0 clochettes.
Comment la sortie devrait-elle être liée à l'entrée?
La sortie doit consister en la concaténation, dans cet ordre, de la chaîne d'entrée et du préfixe le plus court de la chaîne d'entrée nécessaire pour augmenter le nombre de clochettes.
Par exemple, un "bbbccceeelllllooowwwwwwwww"
seul élément supplémentaire suffit "l"
pour contenir 3 clochettes au lieu de 2; le préfixe le plus court qui contient "l"
c'est "bbbccceeel"
. Par conséquent, si l'entrée est "bbbccceeelllllooowwwwwwwww"
, la sortie doit l'être "bbbccceeelllllooowwwwwwwwwbbbccceeel"
.
Les aspects techniques
- Vous pouvez supposer que l'entrée ne contient que des caractères ASCII imprimables. Si un ou deux caractères sont gênants pour le traitement des chaînes de votre langue (tels que les nouvelles lignes ou
\
), vous pouvez supposer que l'entrée ne les contient pas - il suffit de mentionner cette restriction. - Vous pouvez en outre supposer que les caractères alphabétiques de l'entrée sont tous en minuscules ou en majuscules. Si vous choisissez de ne pas en assumer l’une, comptez les cloches sans distinction de casse.
- Vous pouvez en outre supposer que l'entrée contient au moins une copie de chacun des caractères
b
,c
,e
,l
,o
, etw
. Cela revient à supposer que certains préfixes de la chaîne peuvent lui être concaténés pour produire une chaîne contenant plus de sonnailles. (Notez que la chaîne d'entrée elle-même n'a pas besoin de contenir une cloche.) - Si votre langue a un langage intégré qui résout ce problème ... alors utilisez-le totalement, sérieusement, comme c'est génial.
Couches plaquées or
Comme le temps d’enregistrement en studio est coûteux, votre code doit être aussi court que possible. L'entrée avec le moins d'octets est le gagnant!
Cas de test
( lien pastebin pour un copier / coller plus facile)
Test d'entrée n ° 1: "christopher walken begs for more cowbell!"
Test de sortie n ° 1: "christopher walken begs for more cowbell!christopher wal"
Test d'entrée n ° 2: "the quick brown fox jumps over the lazy dog"
Test de sortie n ° 2: "the quick brown fox jumps over the lazy dogthe quick brown fox jumps over the l"
Test d'entrée n ° 3: "cowbell"
Test de sortie n ° 3: "cowbellcowbell"
Test d'entrée n ° 4: "cowbell cowbell cowbell"
Test de sortie n ° 4: "cowbell cowbell cowbellcowbell"
Test d'entrée n ° 5: "cowbell cowbell cowbel"
Test de sortie n ° 5: "cowbell cowbell cowbelcowbel"
Entrée de test n ° 6: "bcelow"
Test de sortie n ° 6: "bcelowbcel"
Test d'entrée n ° 7: "abcdefghijklmnopqrstuvwxyz"
Test de sortie n ° 7: "abcdefghijklmnopqrstuvwxyzabcdefghijkl"
Entrée de test n ° 8: "cccowwwwbbeeeeelllll"
Test de sortie n ° 8: "cccowwwwbbeeeeelllllccco"
Entrée de test n ° 9: "be well, programming puzzles & code golf"
Test de sortie n ° 9: "be well, programming puzzles & code golfbe well, programming puzzles & c"
Test d'entrée n ° 10: "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!"
Test de sortie n ° 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"
Entrée de test n ° 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!
"
Test de sortie n ° 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
un grand bloc de code préformaté. C'est beaucoup plus esthétique et plus facile à copier-coller.
L
mots dans le mot, ce n'est pas ce que le défi demande.