LeetCode97—Interleaving String
来源:互联网 发布:战舰世界详细数据 编辑:程序博客网 时间:2024/06/06 05:16
LeetCode97—Interleaving String
原题
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.
分析
动态规划,
现在讨论
1. 当s3的第
2. 同理,当s3的第
3. 最后返回值为
动归方程:
代码
根据方程写出代码:
class Solution {public: bool isInterleave(string s1, string s2, string s3) { int len1 = s1.size(); int len2 = s2.size(); int len3 = s3.size(); if ((len1 + len2) != len3) return false; if (len1 == 0 && len1 == len2&&len2 == len3) return true; vector<vector<bool>>dp(len1 + 1, vector<bool>(len2 + 1)); dp[0][0] = true; for (int i = 1; i <= len1; i++) { if (s1[i - 1] == s3[i - 1] ) dp[i][0] = dp[i - 1][0]; } for (int j = 1; j <= len2; j++) { if (s2[j - 1] == s3[j - 1] ) dp[0][j] = dp[0][j - 1]; } for (int i = 1; i <= len1; i++) { for (int j = 1; j <= len2; j++) { if ((s1[i - 1] == s3[i + j - 1])&&(dp[i-1][j])) { dp[i][j] = dp[i - 1][j]; } if ((s2[j - 1] == s3[i + j - 1])&&(dp[i][j-1]) ) { dp[i][j] = dp[i][j - 1]; } } } return dp[len1][len2]; }};
1 0
- LeetCode97—Interleaving String
- LeetCode —— Interleaving String
- LeetCode——Interleaving String
- Algorithms—97.Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- linux read命令用法
- RadioGroup和Fragment组合实现切换类似于微博、微信底部的切换
- 金融项目经验之代码安全
- 浏览器存储
- python引入PIL做验证码,发现字体不支持的解决办法
- LeetCode97—Interleaving String
- Codeforces Round #345 (Div. 2)——A. Joysticks(模拟+特判)
- 搭建linux服务器之Debian安装Vim7.4
- bzoj3680: 吊打XXX
- sougou
- Android高阶UI之加入购物车选择颜色、尺码实现
- 番茄工作法学习笔记
- LA 2191(p247)----Potentiometers
- 总结&备忘:ShareSDK中微信分享报-6错误