Você está fornecendo suporte técnico para o Bruce Dickenson como ele produz uma sessão de gravação Blue Oyster Cult. Quando ele pede mais chocalho , você pode dar a ele.
Sua tarefa
Escreva um programa ou função que use uma string (ou equivalente no seu idioma) como entrada e emita uma string relacionada contendo mais um cowbell.
Quantos chocalhos contém uma corda?
O número de campainhas que uma string contém é igual ao número máximo de cópias distintas de "cowbell" que podem ser obtidas permutando os caracteres da string. Por exemplo, "bbbccceeellllllooowwwwwwwww"
contém 3 cencerros, enquanto "bbccceeellllllooowwwwwwwww"
e "bbbccceeelllllooowwwwwwwww"
contêm cada um 2 cencerros, e "cowbel"
contém 0 Tama.
Como a saída deve estar relacionada à entrada?
A saída deve consistir na concatenação, nessa ordem, da sequência de entrada e o prefixo mais curto da sequência de entrada necessária para aumentar o número de chocalhos.
Por exemplo, "bbbccceeelllllooowwwwwwwww"
precisa apenas de um adicional "l"
para conter 3 chocalhos em vez de 2; o prefixo curto que contém o "l"
é "bbbccceeel"
. Portanto, se a entrada for "bbbccceeelllllooowwwwwwwww"
, a saída deve ser "bbbccceeelllllooowwwwwwwwwbbbccceeel"
.
Technicalities
- Você pode assumir que a entrada contém apenas caracteres ASCII imprimíveis. Se houver um ou dois caracteres que são irritantes para o processamento de strings do seu idioma (como novas linhas ou
\
), você pode assumir que a entrada não os contém - apenas mencione esta restrição. - Você também pode assumir que os caracteres alfabéticos na entrada estão todos em minúsculas ou em maiúsculas. Se você optar por não assumir uma delas, conte os chocalhos sem diferenciar maiúsculas de minúsculas.
- Você pode ainda assumir que a entrada contém pelo menos uma cópia de cada um dos personagens
b
,c
,e
,l
,o
, ew
. Isso equivale a supor que algum prefixo da string possa ser concatenado para produzir uma string que contenha mais cowbell. (Observe que a própria string de entrada não precisa conter um chocalho.) - Se o seu idioma possui um built-in que resolve esse problema ... use-o totalmente, sério, o quão impressionante é isso.
Fraldas folheadas a ouro
Como o tempo de gravação do estúdio é caro, seu código deve ser o mais curto possível. A entrada com menos bytes é o vencedor!
Casos de teste
( link pastebin para facilitar a cópia / colar)
Entrada de teste nº 1: "christopher walken begs for more cowbell!"
Teste de saída 1: "christopher walken begs for more cowbell!christopher wal"
Entrada de teste nº 2: "the quick brown fox jumps over the lazy dog"
Teste de saída # 2: "the quick brown fox jumps over the lazy dogthe quick brown fox jumps over the l"
Entrada de teste nº 3: "cowbell"
Teste de saída # 3: "cowbellcowbell"
Entrada de teste # 4: "cowbell cowbell cowbell"
Teste de saída # 4: "cowbell cowbell cowbellcowbell"
Entrada de teste nº 5: "cowbell cowbell cowbel"
Teste de saída # 5: "cowbell cowbell cowbelcowbel"
Entrada de teste # 6: "bcelow"
Teste de saída # 6: "bcelowbcel"
Entrada de teste nº 7: "abcdefghijklmnopqrstuvwxyz"
Teste de saída 7: "abcdefghijklmnopqrstuvwxyzabcdefghijkl"
Entrada de teste nº 8: "cccowwwwbbeeeeelllll"
Teste de saída # 8: "cccowwwwbbeeeeelllllccco"
Entrada de teste nº 9: "be well, programming puzzles & code golf"
Teste de saída # 9: "be well, programming puzzles & code golfbe well, programming puzzles & c"
Entrada de teste nº 10: "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!"
Teste de saída # 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"
Entrada de teste # 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!
"
Resultado do teste # 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
em um grande bloco de código pré-formatado. É muito mais agradável esteticamente e mais fácil copiar e colar.
L
s na palavra, não é isso que o desafio pede.