Interleaving String 交叉的字符串
来源:互联网 发布:淘宝网大童童装 编辑:程序博客网 时间:2024/06/07 16:03
class Solution {
public:
bool isInterleave(string s1, string s2, string s3) {
int m=s1.size();
int n=s2.size();
int k=s3.size();
if(m+n!=k)
return false;
vector<vector<bool>> dp(m+1,vector<bool>(n+1,false));//dp[i][j]表示s1取i位,s2取j位,能否组成s3的i+j位。新添加的字符等于s3的第i+j位字符,之前那个格子也要为true,则为true。
dp[0][0]=true;
for(int i=1;i<m+1;i++)
{
if(s1[i-1]==s3[i-1]&&dp[i-1][0])
dp[i][0]=true;
}
for(int j=1;j<n+1;j++)
{
if(s2[j-1]==s3[j-1]&&dp[0][j-1])
dp[0][j]=true;
}
for(int i=1;i<m+1;i++)
{
for(int j=1;j<n+1;j++)
{
if(s1[i-1]==s3[i+j-1]&&dp[i-1][j])
dp[i][j]=true;
if(s2[j-1]==s3[i+j-1]&&dp[i][j-1])
dp[i][j]=true;
}
}
return dp[m][n];
}
};
public:
bool isInterleave(string s1, string s2, string s3) {
int m=s1.size();
int n=s2.size();
int k=s3.size();
if(m+n!=k)
return false;
vector<vector<bool>> dp(m+1,vector<bool>(n+1,false));//dp[i][j]表示s1取i位,s2取j位,能否组成s3的i+j位。新添加的字符等于s3的第i+j位字符,之前那个格子也要为true,则为true。
dp[0][0]=true;
for(int i=1;i<m+1;i++)
{
if(s1[i-1]==s3[i-1]&&dp[i-1][0])
dp[i][0]=true;
}
for(int j=1;j<n+1;j++)
{
if(s2[j-1]==s3[j-1]&&dp[0][j-1])
dp[0][j]=true;
}
for(int i=1;i<m+1;i++)
{
for(int j=1;j<n+1;j++)
{
if(s1[i-1]==s3[i+j-1]&&dp[i-1][j])
dp[i][j]=true;
if(s2[j-1]==s3[i+j-1]&&dp[i][j-1])
dp[i][j]=true;
}
}
return dp[m][n];
}
};
0 0
- Interleaving String 交叉的字符串
- Interleaving String(交叉字符串)
- [LeetCode] Interleaving String 交叉字符串
- lintcode interleaving-string 交叉字符串
- [Lintcode] Interleaving String 交叉字符串
- 两个字符串交叉得到的字符串 Interleaving String @LeetCode
- LeetCode | Interleaving String(交叉字符串)
- 29.Interleaving String-交叉字符串(中等题)
- 交错字符串 Interleaving String
- Interleaving String (字符串组合,动态规划) 【leetcoode】
- 【LeetCode】Interleaving String && CSDN 交替字符串
- LeetCode 97: Interleaving String 字符串交错
- LeetCode 97. Interleaving String(字符串交织)
- 判断一个字符串是否是有其他两个字符串交错构成的(Interleaving String)
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- 网络编程
- Android中listview的一些调用
- AS3中将TUIO协议转换到传统触摸事件
- win for VirtualBox 下ubuntu 安装增强功能【失败】
- 发送邮件
- Interleaving String 交叉的字符串
- Iterator vs. Enumeration
- Python中random模块
- Hadoop实战-初级部分 之 Hadoop MapReduce JAVA API
- linux下添加用户的命令--useradd
- 【Android】关于执行adb shell的错误解决
- Dojo loader 文档 <3>
- Android adb的常用命令
- Oracle 远程连接