Враховуючи список рядків, замініть кожну рядок однією з її непустих підрядків, яка не є підрядкою жодної з інших рядків у списку, і якомога коротшою.
Приклад
З огляду на список ["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"
випадку?