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?