При наличии списка строк замените каждую строку одной из ее непустых подстрок, которая не является подстрокой ни одной из других строк в списке, и настолько короткой, насколько это возможно.
пример
Учитывая список ["hello","hallo","hola"]
, "hello"
должен быть заменен так же, "e"
как эта подстрока не содержится в "hallo"
и "hola"
и это как можно короче. "hallo"
может быть заменен либо "ha"
или "al"
и "hola"
любой из "ho"
, "ol"
или "la"
.
правила
- Вы можете предположить, что строки будут непустыми и содержат только алфавитные символы одного и того же регистра.
- Можно предположить, что такая подстрока существует для каждой строки в списке, т.е. ни одна строка в списке не будет подстрокой любой из других строк.
- Ввод и вывод могут быть в любом разумном формате.
- Это код-гольф , поэтому старайтесь использовать как можно меньше байтов на выбранном вами языке.
Тестовые случаи
В большинстве случаев дается только один возможный вывод.
["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"]
Связанный: Кратчайшая Идентифицирующая Подстрока - похожая идея, но более сложные правила и громоздкий формат.
""
(пустая строка) однозначно идентифицирует для одного"ppcg"
случая?