首页 > 代码库 > 97. Interleaving String Add to List
97. Interleaving String Add to List
Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2.
For example,
Given:
s1 = "aabcc"
,
s2 = "dbbca"
,
When s3 = "aadbbcbcac"
, return true.
When s3 = "aadbbbaccc"
, return false.
解题思路:很经典的一道DP题。table[i][j]表示字符串s1的位置位i,s2的位置位j时能否用s1[0..i-1],s2[0...j-1]拼成s3[0...i+j-1]。初始化时table[0][0]=1表示全都为空时,可以完成。
class Solution { public: bool isInterleave(string s1, string s2, string s3) { if(s1.length()+s2.length()!=s3.length())return false; vector<vector<int> >table(s1.length()+1,vector<int>(s2.length()+1,0)); for(int i=0;i<s1.length()+1;i++) for(int j=0;j<s2.length()+1;j++) if(i==0&&j==0)table[i][j]=1; else if(i==0)table[i][j]=(table[i][j-1]&&s2[j-1]==s3[j-1]); else if(j==0)table[i][j]=(table[i-1][j]&&s1[i-1]==s3[i-1]); else table[i][j]=table[i-1][j]&&s1[i-1]==s3[i+j-1]||table[i][j-1]&&s2[j-1]==s3[i+j-1]; return table[s1.length()][s2.length()]; } };
97. Interleaving String Add to List
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。