【interleaving-string】
来源:互联网 发布:节拍器软件哪个好 编辑:程序博客网 时间:2024/06/05 12:45
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.
题意:s1和s2是否能构成s3
思路:动态规划问题
dp[i][j]表示S1前i个字符与S2前j个字符是否构成S3前i+j字符;
class Solution{public:bool isInterleve(string s1, string s2, string s3){int rows = s1.length();int cols = s2.length();int lens = s3.length();if ((rows+cols)!=lens){return false;}if (rows==0 || cols==0){if ((rows==0 && s2!=s3)|| (cols==0 && s1!=s3)){return false;}}vector<vector<int>> dp(rows+1, vector<int>(cols+1, false));dp[0][0] = true; //初始化操作for (int i=1; i<=rows; i++){dp[i][0] = dp[i - 1][0] && (s1[i-1]==s3[i-1]);}for (int i = 1; i <= cols; i++){dp[0][i] = dp[0][i] && (s2[i - 1] == s3[i - 1]);}for (int i=1; i<=rows; i++){for (int j=1; j<=cols; j++){//要满足条件,则s3的最后一个要么是s1的最后一个字符//要么是s2的最后一个字符if (s3[i + j - 1] == s1[i - 1] && dp[i - 1][j]){dp[i][j] = true;}else if (s3[i + j - 1] == s2[j - 1] && dp[i][j - 1]){dp[i][j] = true;}elsedp[i][j] = false;}}return dp[rows][cols];}};
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.
阅读全文
0 0
- 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
- Interleaving String
- Interleaving String
- Interleaving String
- 探究C++中的三种继承方式!
- StringBuffer的用法 1、StringBuffer对象的初始化 StringBuffer对象的初始化不像String类的初始化一样,Java提供的有特殊的语法,而通常情况下一般使用构造方
- 终极指南——如何编写更好的SQL查询?
- java业务常用排序方法
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase 离线 dfs+bitset
- 【interleaving-string】
- 剑指offer——重建二叉树
- vue的成长之路一
- TensorFlow初学者资料梳理
- 贪心法求解单源最短路径问题
- IDEA 开发环境中 调试Spark SQL及遇到问题解决办法
- 利用Python+opencv+TensorFlow框架打造 一个试卷批改系统
- eos 校验不能有相同的名称
- 2017真题1--