[leetcode] Interleaving String
2014-07-17 13:00
417 查看
Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2.
For example,
Given:
s1 =
s2 =
When s3 =
When s3 =
思路:dp,设立一个数组dp[0][0],dp[i][j],表示的是s3能被长度为i的s1和长度为j的s2交替迭代组成,那么当s3[i+j-1]=s1[i-1]的时候dp[i][j]=dp[i-1][j],当s3[i+j-1]=s2[j-1]的时候dp[i][j]=dp[i][j-1]
代码:
class Solution {
public:
bool isInterleave(string s1, string s2, string s3) {
int len1=s1.size(),len2=s2.size(),len3=s3.size();
if(len1+len2!=len3) return false;
if(s1+s2==s3) return true;
bool dp[1000][1000];
dp[0][0]=true;
for(int i=1;i<=len1;i++){
dp[i][0]=(dp[i-1][0] && s3[i-1]==s1[i-1]);
}
for(int j=1;j<=len2;j++){
dp[0][j]=(dp[0][j-1] && s3[j-1]==s2[j-1]);
}
for(int i=1;i<=len1;i++){
for(int j=1;j<=len2;j++){
dp[i][j]=(dp[i-1][j] && s1[i-1]==s3[i+j-1]) || (dp[i][j-1] && s2[j-1]==s3[i+j-1]);
}
}
return dp[len1][len2];
}
};
For example,
Given:
s1 =
"aabcc",
s2 =
"dbbca",
When s3 =
"aadbbcbcac", return true.
When s3 =
"aadbbbaccc", return false.
思路:dp,设立一个数组dp[0][0],dp[i][j],表示的是s3能被长度为i的s1和长度为j的s2交替迭代组成,那么当s3[i+j-1]=s1[i-1]的时候dp[i][j]=dp[i-1][j],当s3[i+j-1]=s2[j-1]的时候dp[i][j]=dp[i][j-1]
代码:
class Solution {
public:
bool isInterleave(string s1, string s2, string s3) {
int len1=s1.size(),len2=s2.size(),len3=s3.size();
if(len1+len2!=len3) return false;
if(s1+s2==s3) return true;
bool dp[1000][1000];
dp[0][0]=true;
for(int i=1;i<=len1;i++){
dp[i][0]=(dp[i-1][0] && s3[i-1]==s1[i-1]);
}
for(int j=1;j<=len2;j++){
dp[0][j]=(dp[0][j-1] && s3[j-1]==s2[j-1]);
}
for(int i=1;i<=len1;i++){
for(int j=1;j<=len2;j++){
dp[i][j]=(dp[i-1][j] && s1[i-1]==s3[i+j-1]) || (dp[i][j-1] && s2[j-1]==s3[i+j-1]);
}
}
return dp[len1][len2];
}
};
相关文章推荐
- 【leetcode刷题笔记】Interleaving String
- LeetCode解题报告—— Interleaving String
- LeetCode 97. Interleaving String 题解
- LeetCode 97. Interleaving String(字符串交织)
- leetcode[97] Interleaving String
- [LeetCode] Interleaving String
- [Leetcode] Interleaving String (Java)
- LeetCode Interleaving String
- LeetCode(97) Interleaving String
- Leetcode 97. Interleaving String
- LeetCode 97. Interleaving String
- 【leetcode】String——Interleaving String(97)
- leetcode Interleaving String
- Leetcode: Interleaving String
- leetcode Interleaving String
- leetcode Interleaving String
- leetcode--Interleaving String
- LeetCode:Interleaving String
- LeetCode - Interleaving String
- [Leetcode] #97 Interleaving String