Я ищу быстрый алгоритм для поиска в огромной строке (это последовательность генома организма, состоящая из сотен миллионов и миллиардов символов) .
В этой строке всего 4 символа {A, C, G, T}, и «A» может сочетаться только с «T», а «C» - с «G».
Теперь я ищу две подстроки (с ограничением длины обеих подстрок между {minLen, maxLen} и длиной интервала между {intervalMinLen, intervalMaxLen}), которые могут соединяться друг с другом антипараллельно.
Например, Строка: ATCAG GACCA TACGC CTGAT
Ограничения: minLen = 4, maxLen = 5, intervalMinLen = 9, intervalMaxLen = 10
Результатом должно быть
пара «ATCAG» с «CTGAT»
» TCAG "пара с" CTGA "
Заранее спасибо.
Обновление: у меня уже есть метод, чтобы определить, могут ли две строки соединяться друг с другом. Единственная проблема заключается в том, что проведение исчерпывающего поиска занимает очень много времени.