Учитывая одна строки сказать S
длиной m
и множество других строк R
все с длиной равной или более крупной, чем m
. Найдите строки в наборе, которые имеют S
в качестве подпоследовательности.Найти подпоследовательность вхождения в нескольких строках
Так что, если S
является blr
и множество струн:
bangalore
booleer
bamboo
Она должна возвращать первые две строки.
Я понимаю, что можно найти, если строка S
длины m
является subsecuence другой строки T
длины n
в временной сложностью O (N + M). Поэтому я знаю, что могу просто выполнить этот алгоритм для каждого элемента в наборе, но это будет временной сложностью O (k * (n + m)), которая равна k
размеру набора (и если все строки имеют такой же длины). Это заставляет меня задаться вопросом, есть ли какая-то предварительная обработка, которая помогает мне решить эту проблему с помощью нескольких строк.
Итак, есть ли какая-либо предварительная обработка или структура, которые я могу использовать для решения этой проблемы? Какую наилучшую временную сложность я могу достичь? Существуют ли какие-либо другие способы решения этой проблемы?