1. 程式人生 > >資料結構演算法題/最長公共子串

資料結構演算法題/最長公共子串

求兩個輸入序列的最長的公共子字串的長度。子字串中的所有字元在源字串中必須相鄰。

如字串:21232523311324和字串312123223445,他們的最長公共子字串為21232,長度為5.

假設需要求的字串為 str1 , str2 .函式 f(m,n) 求分別以str1[m] , str2[n] 結尾的公共字串長度。
這有一下遞推公式:

f(m,n)=0        str1[m] != str2[n] ;
f(m,n)=f(m-1,n-1) + 1      str[m]==str2[n];

別忘了遞推的特殊邊界:
f(0,n)=0;
f(m,0)=0;