Самая длинная общая строка с одним допустимым пробелом
Итак, я хочу найти самую длинную общую строку среди двух строк, например, AABA и AAGA
, чтобы она могла игнорировать один символ, который является B и G, чтобы получить самую длинную общую подстроку как AAA
Я пробовал logi c с использованием рекурсии, но не смог прийти к выводу
Мой код:
int lcs(int i, int j, int count)
{
if (i == 0 || j == 0)
return count;
if (X\[i-1\] == Y\[j-1\]) {
count = lcs(i - 1, j - 1, count + 1);
}
if (X\[i-2\] == Y\[j-2\])
count = lcs(i -2, j -2, count + 1);
​
count = max(count, max(lcs( i, j - 1, 0), lcs( i - 1, j, 0)));
return count;
}
где i и j - это размер этих двух строк, а count - длина самой большой общей строки.