LeetCode_Interleaving String
来源:互联网 发布:ubuntu 装在ntfs 编辑:程序博客网 时间:2024/06/18 12:18
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.
递归解法:超时
class Solution {public: bool isInterleave(string s1, string s2, string s3) { if (s1.length() + s2.length() != s3.length()) return false; return isInterleaveDFS(s1, s2, s3, 0, 0, 0); } bool isInterleaveDFS(string &s1, string &s2, string &s3, int p1, int p2, int p3) { if (p3 == s3.length()) { return true; } if (p1 < s1.length() && s1[p1] == s3[p3]) { if (isInterleaveDFS(s1, s2, s3, p1 + 1, p2, p3 + 1)) { return true; } } if (p2 < s2.length() && s2[p2] == s3[p3]) { if (isInterleaveDFS(s1, s2, s3, p1, p2 + 1, p3 + 1)) { return true; } } return false; }};
DP解法:
bool isInterleave2(string s1, string s2, string s3){int len1 = s1.length();int len2 = s2.length();int len3 = s3.length();if (len1 + len2 != len3)return false;bool f[256][256];memset(f, 0, sizeof(bool) * 256 * 256);if (s1[0] == s3[0]){f[1][0] = true;}else{f[1][0] = false;}for (int i = 2; i <= len1; ++i){if (f[i-1][0] && (s1[i-1] == s3[i-1])){f[i][0] = true;}else{f[i][0] = false;}}if (s2[0] == s3[0]){f[0][1] = true;}else{f[0][1] = false;}for (int i = 2; i <= len2; ++i){if (f[0][i-1] && (s2[i-1] == s3[i-1])){f[0][i] = true;}else{f[0][i] = false;}}for (int i = 1; i <= len1; ++i){for (int j = 1; j <= len2; ++j){f[i][j] = false;if (f[i-1][j] == true && s1[i-1] == s3[i+j-1]){f[i][j] = true;}if (f[i][j-1] == true && s2[j-1] == s3[i+j-1]){f[i][j] = true;}}}return f[len1][len2];}
- LeetCode_Interleaving String
- Leetcode_interleaving-string
- string
- String
- String
- string
- string
- String
- string
- String
- string
- string
- string
- string
- String
- String
- string
- string +
- flex 摄像头拍照预览 功能
- html中显示时间
- 十六周 阅读程序
- Cocos2d-x之Touch事件处理机制
- 关于aix版本的问题
- LeetCode_Interleaving String
- MSP430 Launchpad串行/并行12864显示
- 【ASP.NET Web API教程】6.2 ASP.NET Web API中的JSON和XML序列化
- 利用jOOR简化Java 反射使用
- js 获取 ckeditor 的值
- 将整形数据转换为反转数字字符串输出
- CoreImage图片滤镜效果详解
- 2187 hdu
- Android应用的结构与基本组件