Dato un elenco di stringhe, sostituire ogni stringa con una delle sue sottostringhe non vuote che non è una sottostringa di nessuna delle altre stringhe nell'elenco e il più breve possibile.
Esempio
Data la lista ["hello","hallo","hola"]
, "hello"
dovrebbe essere sostituito da solo "e"
in quanto ciò stringa non è contenuta in "hallo"
e "hola"
ed è il più corto possibile. "hallo"
potrebbe essere sostituito da uno "ha"
o "al"
e "hola"
da qualsiasi di "ho"
, "ol"
o "la"
.
Regole
- Puoi presumere che le stringhe saranno non vuote e contengano solo caratteri alfabetici dello stesso caso.
- Si può presumere che una tale sottostringa esista per ogni stringa nell'elenco, cioè nessuna stringa nell'elenco sarà una sottostringa di una qualsiasi delle altre stringhe.
- L'input e l'output possono essere in qualsiasi formato ragionevole.
- Questo è code-golf , quindi cerca di usare il minor numero di byte possibile nella lingua che preferisci.
Casi test
Nella maggior parte dei casi viene fornito un solo output possibile.
["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"]
Correlati: Sottostringa identificativa più breve - idea simile, ma regole più coinvolte e formato ingombrante.
""
(stringa vuota) si identifica in modo univoco per il singolo"ppcg"
caso?