Data una stringa s composta da lettere minuscole, come ad esempio
aabaaababbbbaaba
e un intero positivo n , come ad esempio 4
, genera una stringa di lunghezza n t tale che quando t viene ripetuto per la lunghezza di s , hanno il maggior numero di caratteri in comune possibile. Per l'esempio dato, l'output ottimale sarebbe aaba
, poiché ha tredici caratteri in comune con la stringa di destinazione:
s: aabaaababbbbaaba
t: aabaaabaaabaaaba (aaba)
^^^^^^^^ ^ ^^^^
e nessun possibile t ha più. Tuttavia, per aaaaaab
, ci sono due possibili output: aaaa
e aaba
, che hanno ciascuno 6 caratteri in comune con la stringa di destinazione:
s: aaaaaab
t: aaaaaaaa (aaaa)
^^^^^^
s: aaaaaab
t: aabaaaba (aaba)
^^ ^^^^
O aaaa
o aaba
può essere emesso, o entrambi se lo desideri. Nota che s non viene mai ripetuto; il trailing a
in entrambi i valori ripetuti di t viene semplicemente ignorato.
Casi test
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
Regole
- Si può presumere che l'input sarà sempre una stringa non vuota di lettere minuscole e un numero intero positivo non maggiore della lunghezza della stringa.
- Puoi prendere gli input in qualsiasi formato standard e in entrambi gli ordini.
- È possibile generare una singola stringa o più di una sotto forma di un array, separate da newline o spazi, ecc.
- Il codice deve terminare per ogni test in meno di 1 minuto su qualsiasi computer abbastanza moderno.
- Questo è code-golf , quindi rendi il tuo codice il più breve possibile.
2 abb -> ba
dove è costruito come (b)[ab]a
: il protagonista (b)
è ignorato, [ab]
sono corrispondenti.