最大公共子串長度問題就是: 求兩個串的所有子串中能夠匹配上的最大長度是多少。 比如:"abcdkkk" 和 "baabcdadabc", 可以找到的最長的公共子串是"abcd",所以最大公共子串長度為4。 下面的程式是採用矩陣法進行求解的,這對串的規模不大的情況還是比較有效的解法。 請分析該解法的思路,並補全劃線部分缺失的**。思路:本題用矩陣的方式進行儲存
(1).求兩個字串的長度,使用乙個矩陣並初始化為0
(2).最重要的就是a[i][j]=a[i-1][j-1]+1;
因為i-1>=0,所以i從1開始
求最大公共子串:
for(i=1; i<=len1; i++)
}}
#include
#include
#define n 256
int f(const char* s1, const char* s2)}}
return max;
}int main()
{printf("%d\n", f("abcdkkk", "baabcdadabc"));
return 0;
答案:a[i-1]+j[i-1]+1;
最大公共子串行,最大公共子串,最大回文子串
1 兩個字串中最長公共子串行 該問題是動態規劃的經典問題,找出的公共序列不一定是連續的,參考資料很多,這裡就貼出公式和 做個簡單的筆記。設序列a,b的長度分別為n和m,l i,j 為a i b j 的最長公共子串行長度,有遞推公式 時間複雜度為o mn 如下 define n 50 intlcs c...
最大公共子串
problem description 從乙個給定的串中刪去 不一定連續地刪去 0個或0個以上的字元,剩下地字元按原來順序組成的串。例如 a xb aaa bbb xabb xaaabbb 都是串 xaaabbb 的子串。例子中的串不包含引號。程式設計求n個非空串的最長公共子串的長度。限制 2 n ...
最大公共子串
最大公共子串 最大公共子串長度問題就是 求兩個串的所有子串中能夠匹配上的最大長度是多少。比如 abcdkkk 和 baabcdadabc 可以找到的最長的公共子串是 abcd 所以最大公共子串長度為4。下面的程式是採用矩陣法進行求解的,這對串的規模不大的情況還是比較有效的解法。請分析該解法的思路,並...