力扣 1143 最長公共子串行

2021-10-11 03:13:41 字數 1079 閱讀 7744

1143. 最長公共子串行

給定兩個字串text1text2,返回這兩個字串的最長公共子串行的長度。

乙個字串的 子串行 是指這樣乙個新的字串:它是由原字串在不改變字元的相對順序的情況下刪除某些字元(也可以不刪除任何字元)後組成的新字串。

例如,"ace" 是 "abcde" 的子串行,但 "aec" 不是 "abcde" 的子串行。兩個字串的「公共子串行」是這兩個字串所共同擁有的子串行。

若這兩個字串沒有公共子串行,則返回 0。

示例 1:

輸入:text1 = "abcde", text2 = "ace"輸出:3解釋:最長公共子串行是 "ace",它的長度為 3。
示例 2:

輸入:text1 = "abc", text2 = "abc"輸出:3解釋:最長公共子串行是 "abc",它的長度為 3。
示例 3:

輸入:text1 = "abc", text2 = "def"輸出:0解釋:兩個字串沒有公共子串行,返回 0。

//狀態轉移方程:f[i][j]=max(f[i][j],f[i-1][j-1]+1);

//集合三種:f[i-1][j-1],f[i-1][j],f[i][j-1]

//經驗:兩個字串的比較用二維陣列

#define max(a,b) ((a)>(b)?(a):(b)) //技巧

int longestcommonsubsequence(char * text1, char * text2);

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

}return f[n][m];

}

力扣 1143 最長公共子串行

給定兩個字串text1和text2,返回這兩個字串的最長公共子串行的長度。乙個字串的 子串行 是指這樣乙個新的字串 它是由原字串在不改變字元的相對順序的情況下刪除某些字元 也可以不刪除任何字元 後組成的新字串。例如,ace 是 abcde 的子串行,但 aec 不是 abcde 的子串行。兩個字串的...

1143 最長公共子串行

給定兩個字串 text1 和 text2,返回這兩個字串的最長公共子串行。乙個字串的 子串行 是指這樣乙個新的字串 它是由原字串在不改變字元的相對順序的情況下刪除某些字元 也可以不刪除任何字元 後組成的新字串。例如,ace 是 abcde 的子串行,但 aec 不是 abcde 的子串行。兩個字串的...

1143 最長公共子串行

給定兩個字串 text1 和 text2,返回這兩個字串的最長公共子串行。乙個字串的 子串行 是指這樣乙個新的字串 它是由原字串在不改變字元的相對順序的情況下刪除某些字元 也可以不刪除任何字元 後組成的新字串。例如,ace 是 abcde 的子串行,但 aec 不是 abcde 的子串行。兩個字串的...