求最長公共子串行長度

2021-09-12 16:30:04 字數 518 閱讀 5654

1.求最長公共子串行(子串行可以不連續)

這是一道動態規劃題,設二維陣列dp[i][j],dp[i][j]表示a串前i個字元(包括第i個)與b串前j個字元(包括第j個)所有的公共子串行的最長長度。

例如,a串abbcd,b串abcd,dp[3][3]就表示的a的前三個字元與b的前三個字元的最長公共子串行長度,值為2。a串中的ab與b串中的ab一致,長度為2。

求dp陣列的方法為:

dp[i][j] = 0 , i == 0 || j == 0

dp[i][j] = dp[i-1][j-1] +1 , a[i] = b[j]

dp[i][j] = max(dp[i-1][j],dp[i][j-1]) , a[i] !=b[j]

#include#include#includeusing namespace std;

int main()

cout<}

cout<< max;

}

動態規劃求最長公共子串行長度和子串行

求兩個字串的最長公共子串行時,需要用到兩個陣列c maxlen maxlen b maxlen maxlen c maxlen maxlen 用於記錄兩個字串的lcs 最長公共子串行 的長度,b maxlen maxlen 記錄回溯時搜尋方向,1表示上方,1表示左方,0表示左上方。動態轉移方程 b ...

SDUT 最長公共子串行長度 動態規劃

time limit 1000 ms memory limit 65536 kib submit statistic problem description 給定兩個序列x input 輸入資料有多組,每組有兩行 每行為乙個長度不超過500的字串 輸入全是大寫英文本母 a,z 表示序列x和y。out...

3 1 最長公共子串行長度 15分

求兩個字串的最長公共子串行長度。輸入格式 輸入長度 100的兩個字串。輸出格式 輸出兩個字串的最長公共子串行長度。輸入樣例1 abcbdab bdcaba 輸出樣例1 輸入樣例2 abacdef pghik 輸出樣例2 動態規劃問題 主要是處理好邊界以及狀態轉移方程。pat不可以用gets函式,就換...