1143. 最長公共子串行
給定兩個字串text1
和text2
,返回這兩個字串的最長公共子串行的長度。
乙個字串的 子串行 是指這樣乙個新的字串:它是由原字串在不改變字元的相對順序的情況下刪除某些字元(也可以不刪除任何字元)後組成的新字串。
例如,"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 的子串行。兩個字串的...