Изменения

Перейти к: навигация, поиск
Псевдокод
При первой вызове функции, к качестве аргументов передаем индексы первого и последнего элементов исходной строки. Например для строки длиной 7 вызов функции булдет иметь следующий вид: <tex>pal(0,6)</tex>. Искомая же длина будет записана в ячейке <tex>L[0][N-1]</tex>, где <tex>N</tex> — длина исходной строки.
<code style = "display: inline-block;">
'''palpalSubSeq'''(ileft, jright) //i и j - границы строки S '''if''' L[ileft][jright] = -1 //L - массив длин k = j '''whileif''' Ss[ileft] <tex>\neq</tex> S= s[kright] k-- R1 = pal(i + 1, j) '''if''' i <tex>\neq</tex> k R2 L[left][right] = palpalSubSeq(i left + 1, k right - 1) + 2 '''else''' R2 = 1 '''if''' R1 > R2 L[ileft][jright] = R1 '''else''' L[i][j] = R2MAX(palSubSeq(left + 1, right), palSubSeq(left, right - 1)) '''return''' L[ileft][jright]
</code>
299
правок

Навигация