企业建站公司排名为什么不好做,湛江有没有做网站的,网站域名找回密码 用户名,态网站设计最长公共子序列 题解1 DP 给定两个字符串
text1 和
text2#xff0c;返回这两个字符串的
最长公共子序列的长度。如果不存在
公共子序列#xff0c;返回 0 。 一个字符串的子序列是指这样一个新的字符串#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些… 最长公共子序列 题解1 DP 给定两个字符串
text1 和
text2返回这两个字符串的
最长公共子序列的长度。如果不存在
公共子序列返回 0 。 一个字符串的子序列是指这样一个新的字符串它是由原字符串在不改变字符的相对顺序的情况下删除某些字符也可以不删除任何字符后组成的新字符串。
例如“ace” 是 “abcde” 的子序列但 “aec” 不是 “abcde” 的子序列。 两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。
示例 1 输入text1 abcde, text2 ace 输出3 解释最长公共子序列是 “ace” 它的长度为 3 。
示例 2 输入text1 abc, text2 abc 输出3 解释最长公共子序列是 “abc” 它的长度为 3 。
示例 3 输入text1 abc, text2 def 输出0 解释两个字符串没有公共子序列返回 0 。
提示
1 text1.length, text2.length 1000text1 和 text2 仅由小写英文字符组成。
题解1 DP
class Solution {
public:int longestCommonSubsequence(string text1, string text2) {int m text1.size();int n text2.size();vectorvectorintdp(m1, vectorint(n1, 0));for(int i 1; i m; i){for(int j 1; j n; j){if(text1[i-1] text2[j-1])// 只差text1[i-1]这一个字符或者说text2[j-1]所以是1dp[i-1][j-1] 不含当前dp[i][j] 1 dp[i-1][j-1];elsedp[i][j] max(dp[i-1][j], dp[i][j-1]);}}return dp[m][n];}
};