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

2021-08-29 23:39:56 字數 500 閱讀 6593

解題分析:

設兩個序列x=,y=。用lsc(x,y)表示最長公共子串行。

1.如果xn=yn。則該元素一定存在於公共子串行中,所以可化為尋求子問題lsc(x-1,y-1)。

用公式可表示為lsc(x,y)=lsc(x-1,y-1)+1。

2.如果xn!=yn。則該元素不存在於公共子串行中,所以轉而去尋求兩個子問題,即lsc(x-1,y)和lsc(x,y-1)。其中,x-1=,y-1=。

用公式可表示為lsc(x,y)=max(lsc(x-1,y),lsc(x,y-1))。

ac**:

#include #include int max(int a,int b)

char a[1005],b[1005];

int d[1005][1005];

int main()

} printf("%d\n",d[l1][l2]);

} return 0;

}

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

autor baker time 25 5 06 求兩個字串的最長公共子串行。x的乙個子串行是相應於x下標序列的乙個子串行,求解兩個序列的所有子串行中長度最大的,例如輸入 pear,peach輸出 pea。分析 次題可用動態規劃演算法解決。首先定義乙個二維陣列 a a i j m g ddgg dd...

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

方法 一 遞迴 採用遞迴的方法,簡單,但是速度比較慢,當字串比較大的時間,多次遞迴會計算一些重複的過程,因此速度很很慢。include using namespace std int lcslength int i,int j string x,y int lenx,leny int main re...

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

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