方法一(动态规划,类似于 1143. 最长公共子序列) 示例代码 登录后复制 class Solution { public: bool isSubsequence(string text1, string text2) { int len1=text1.length(),len2=text2.length(); vector<vector<int>> dp(len1+1,vector<int>(len2+1)); for(int i=1;i<=len1;i++){ for(int j=1;j<=len2;j++){ if(text1[i-1]==text2[j-1]){ dp[i][j]=dp[i-1][j-1]+1; }else{ dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } } } return dp[len1][len2]==len1; } }; 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17. 效果展示 方法二(快慢指针) 示例代码 登录后复制 class Solution { public: bool isSubsequence(string text1, string text2) { int len1=text1.length(),len2=text2.length(); int i=0,j=0; while(i<len1&&j<len2){ if(text1[i]==text2[j]){ i++; j++; }else{ j++; } } return i==len1; } }; 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17. 效果展示 原创作者: u_15305087 转载于: https://blog.51cto.com/u_15305087/11829944