Dada uma lista de seqüências de caracteres, substitua cada sequência por uma de suas subseqüências não vazias, que não é uma subseqüência de nenhuma das outras seqüências da lista e o mais curta possível.
Exemplo
Dada a lista ["hello","hallo","hola"]
, "hello"
deve ser substituído por apenas "e"
como este substring não está contido no "hallo"
e "hola"
e é o mais curto possível. "hallo"
Pode ser substituído por um ou outro "ha"
ou "al"
e "hola"
por qualquer um dos "ho"
, "ol"
ou "la"
.
Regras
- Você pode assumir que as seqüências de caracteres não estarão vazias e conterão apenas caracteres alfabéticos do mesmo caso.
- Você pode assumir que existe uma substring para cada string da lista, ou seja, nenhuma string da lista será uma substring de qualquer uma das outras strings.
- A entrada e a saída podem estar em qualquer formato razoável.
- Isso é código-golfe , então tente usar o mínimo de bytes possível no idioma de sua escolha.
Casos de teste
Apenas uma saída possível é fornecida na maioria dos casos.
["ppcg"] -> ["p"] (or ["c"] or ["g"])
["hello","hallo","hola"] -> ["e","ha","ho"]
["abc","bca","bac"] -> ["ab","ca","ba"]
["abc","abd","dbc"] -> ["abc","bd","db"]
["lorem","ipsum","dolor","sit","amet"] -> ["re","p","d","si","a"]
["abc","acb","bac","bca","cab","cba"] -> ["abc","acb","bac","bca","cab","cba"]
Relacionado: Substring de identificação mais curta - idéia semelhante, mas regras mais envolvidas e formato complicado.
""
(string vazia) a identificação exclusiva para o"ppcg"
caso único ?