最大公共子串行

2022-08-03 01:51:15 字數 431 閱讀 9238

對於兩個字串,請設計乙個高效演算法,求他們的最長公共子串行的長度,這裡的最長公共子串行定義為有兩個序列u1,u2,u3...un和v1,v2,v3...vn,其中ui給定兩個字串ab,同時給定兩個串的長度nm,請返回最長公共子串行的長度。保證兩串長度均小於等於300。

測試樣例:"1a2c3d4b56",10,"b1d23ca45b6a",12       返回:6

我的**:

int findlcs(string a, int n, string b, int

m) ;

for(int i = 1; i <= n; i++)

}return

dp[n][m];

}

最大公共子串行,最大公共子串,最大回文子串

1 兩個字串中最長公共子串行 該問題是動態規劃的經典問題,找出的公共序列不一定是連續的,參考資料很多,這裡就貼出公式和 做個簡單的筆記。設序列a,b的長度分別為n和m,l i,j 為a i b j 的最長公共子串行長度,有遞推公式 時間複雜度為o mn 如下 define n 50 intlcs c...

DP最大公共子串行

題意 求兩個串的最長公共子串行 中的dp i j 表示0到i 1跟0到j 1的最長公共子串行 空間變化圖如下 分析如下 1.dp i j dp i 1 j 1 1 a i b j 因為加和都是要和他前一項的基礎上加和所以是dp i 1 j 1 2.dp i j max dp i 1 j dp i j...

最大公共子串序列

例如串1abce 串2為bcde 那麼他們公共子串就是bce 這裡要用到動態規劃dp 思路 dp i j 指的是字串s1和s2的最長公共子串行 要求它的下乙個i 1 j 1時候的狀態要分情況討論 情況1 如果他們末尾的字母相等,那麼該字母肯定是子串行中的乙個dp i j 1就行。情況2 如果不相等,...