Dada uma string s composta por letras minúsculas, como
aabaaababbbbaaba
e um número inteiro positivo n , tal como 4
, a produção de um comprimento- n corda t de tal modo que, quando t é repetido para o comprimento de s , que têm como muitos caracteres em comum quanto possível. Para o exemplo dado, a saída ideal seria aaba
, porque possui treze caracteres em comum com a cadeia de destino:
s: aabaaababbbbaaba
t: aabaaabaaabaaaba (aaba)
^^^^^^^^ ^ ^^^^
e não é possível t tem mais. No entanto, para aaaaaab
, existem duas saídas possíveis: aaaa
e aaba
, cada uma com 6 caracteres em comum com a sequência de destino:
s: aaaaaab
t: aaaaaaaa (aaaa)
^^^^^^
s: aaaaaab
t: aabaaaba (aaba)
^^ ^^^^
Um aaaa
ou aaba
pode ser produzido, ou ambos, se você desejar. Observe que s nunca é repetido; a trilha a
nos dois valores repetidos de t é simplesmente ignorada.
Casos de teste
Inputs -> Valid outputs
1 a -> a
1 aa -> a
2 aa -> aa
1 ab -> a b
2 ab -> ab
1 abb -> b
2 abb -> ab bb
2 ababa -> ab
2 abcba -> ab
2 aabbbbb -> bb (ab is not a valid output here)
3 aababba -> aab abb
3 aababbaa -> aab
3 asdasfadf -> asf
3 asdasfadfsdf -> asf adf
2 abcdefghijklmnopqrstuvwxyzyx -> yx
2 supercalifragilisticexpialidocious -> ic ii
3 supercalifragilisticexpialidocious -> iri ili ioi
4 supercalifragilisticexpialidocious -> scii
5 supercalifragilisticexpialidocious -> iapic
2 eeeebaadbaecaebbbbbebbbbeecacebdccaecadbbbaceebedbbbddadebeddedbcedeaadcabdeccceccaeaadbbaecbbcbcbea -> bb be
10 bbbbacacbcedecdbbbdebdaedcecdabcebddbdcecebbeeaacdebdbebaebcecddadeeedbbdbbaeaaeebbedbeeaeedadeecbcd -> ebbbdbeece ebdbdbeece
20 aabbbaaabaaabaaaabbbbabbbbabbbabbbbbabbaaaababbbaababbbaababaaaabbaaabbaabbbabaaabbabbaaabbaaaaaaaba -> aabbbbaaabbabbbaabba
Regras
- Você pode assumir que a entrada será apenas uma sequência não vazia de letras minúsculas e um número inteiro positivo não maior que o comprimento da sequência.
- Você pode receber as entradas em qualquer formato padrão e em qualquer ordem.
- Você pode gerar uma única sequência, ou mais de uma, na forma de uma matriz, separada por novas linhas ou espaços, etc.
- Seu código deve terminar para cada caso de teste em menos de 1 minuto em qualquer computador razoavelmente moderno.
- Isso é código-golfe , então faça seu código o mais curto possível.
2 abb -> ba
onde é construído como (b)[ab]a
: o líder (b)
é ignorado, [ab]
está correspondendo.