У меня есть проблема, и мне нужен алгоритм для ее решения.
Я не смог найти и не знаю, проблема в NP -Hard.
Проблема в том, что :у меня есть несколько последовательностей символов. Я хочу объединить их в одну последовательность, в которую включены все символы исходных последовательностей, сохраняя исходный порядок символов. Дублирующиеся символы из разных последовательностей должны быть удалены. Результирующая последовательность должна быть наименьшей возможной последовательностью.
Если одна из последовательностей — «abc», результирующая последовательность должна быть *a *b *c *, где *— последовательность из 0 или более символов. Если входными последовательностями являются 'abc' и 'cba', выход должен быть 'abcba', 'c' включается один раз, а *a *b *c *и *c *b *a *имущество сохраняется.
Пример:
Вход:
abcde
xbcaf
axdaf
Способ слияния:
a-bcde--
-xbc--af
ax--d-af
Выход:
axbcdeaf
Возможно несколько выходов, «abcd» и «cba» приведут к «abcdba», «abcbda» или «abcbad». Мне понадобится только один выход, любой выход действителен,если его длина является наименьшей возможной длиной.
Спасибо