Introdução
Vamos observar a corda abc
. As substrings que podem ser feitas com isso são:
a, ab, abc, b, bc, c
Agora precisamos alinhá-los sob a string inicial, assim:
abc
a
b
c
ab
bc
abc
A ordem da string não importa, então isso também é perfeitamente válido:
abc
a
ab
abc
b
bc
c
Portanto, a substring é posicionada sob o local da substring na string inicial. Portanto, para abcdef
e a substring cde
, ficaria assim:
abcdef
cde
A tarefa
A tarefa é alinhar todas as substrings com um comprimento maior que 0 , como mostrado acima. Você pode supor que a própria string conterá apenas caracteres alfabéticos e tenha pelo menos 1 caractere. Para o preenchimento, você pode usar um espaço ou outro caractere ASCII imprimível não alfabético ( 32 - 127
). Talvez não seja necessário mencionar, mas a própria string conterá apenas caracteres únicos, portanto não é o caso aba
, pois a
ocorre duas vezes.
Casos de teste
Entrada: abcde
Saída possível:
a
ab
abc
abcd
abcde
b
bc
bcd
bcde
c
cd
cde
d
de
e
Entrada: abcdefghij
Saída possível:
a
ab
abc
abcd
abcde
abcdef
abcdefg
abcdefgh
abcdefghi
abcdefghij
b
bc
bcd
bcde
bcdef
bcdefg
bcdefgh
bcdefghi
bcdefghij
c
cd
cde
cdef
cdefg
cdefgh
cdefghi
cdefghij
d
de
def
defg
defgh
defghi
defghij
e
ef
efg
efgh
efghi
efghij
f
fg
fgh
fghi
fghij
g
gh
ghi
ghij
h
hi
hij
i
ij
j
Isso é código-golfe , então a submissão com a menor quantidade de bytes ganha!