求解兩個字串的公共子串

2021-09-08 13:41:08 字數 698 閱讀 8466

// 求解兩個字串的公共子串 

// 將這兩個字串展開成乙個矩陣形式, 行元素為第乙個字串元素. 列元素為第二個字串元素

// 比較每行與每列中元素個數是否相同, 相同的可置其位置為1, 不相同則置其位置為0

// 累加斜對角線上的元素個數, 最大的即為兩字串的公共子串個數,

// 它們的行下標在第乙個字串中的元素或是列下標在第二個字串中的元素即為公共子串

// 若存在多個長度相同的子串則匹配第乙個子串

#include#includeusing namespace std;

void twostringmaxsubstring(string str1, string str2, int &maxlen, int &pos)

char temp_ch = ' ';

// 將第乙個字串中的每乙個字元依次與第二個字串的第1, 2, 3,...i,...,n個字元 進行比較

// 逐行比較

for (int i = 0; i < len2; i++)

else

if (currentline[j] > maxlen)

}// 將當前行的字元資訊儲存起來, 再將陣列置為空

for (int k = 0; k < len; k++)

}}int main()

求解兩個字串的最長公共子串

求解兩個字串的最長公共子串 比如字串1 helloworld 字串2 hloop 則這兩個字串的最長公共子串行長度為2,最長公共子串行是 lo 問題定義 lcs i j 為以s1 i 與s2 j 為結尾的的最長公共子串的長度 遞推公式 lcs xn,ym lcs xn 1,ym 1 1 if x n...

求解兩個字串的最長公共子串行

一,問題描述 給定兩個字串,求解這兩個字串的最長公共子串行 最長公共序列 比如字串1 bdcaba 字串2 abcbdab 則這兩個字串的最長公共子串行長度為4,最長公共子串行是 bcba 二,演算法求解 這是乙個動態規劃的題目對於可用動態規劃求解的問題,一般有兩個特徵 最優子結構 重疊子問題 最優...

求解兩個字串的最長公共子串行

一,問題描述 給定兩個字串,求解這兩個字串的最長公共子串行 longest common sequence 比如字串1 bdcaba 字串2 abcbdab 則這兩個字串的最長公共子串行長度為4,最長公共子串行是 bcba 二,演算法求解 這是乙個動態規劃的題目。對於可用動態規劃求解的問題,一般有兩...