Кратчайшая суперстрока
Строки
Экстремальная
Дан список различных строк words. Найдите строку МИНИМАЛЬНОЙ длины, содержащую каждую строку из words как подстроку (строки можно перекрывать - например, "abc" и "bcd" дают суперстроку "abcd" вместо "abcbcd").
Если оптимальных суперстрок несколько, верните ЛЮБУЮ - проверяется, что каждое исходное слово входит как подстрока и длина результата минимальна.
Классическое решение - битмаска-ДП по перестановкам слов с максимизацией суммарного перекрытия соседних слов.
Сигнатура функции
shortest_superstring(words: list[str]) -> str
Примеры
| Вход | Ожидаемый результат |
| [["catg", "ctaagt", "gcta", "ttca", "atgcatc"]] | "gctaagttcatgcatc" |
| [["alex", "loves", "leetcode"]] | "leetcodelovesalex" |
1решили
1пытались
100%успешность
Войдите, чтобы решить →