leetcode Interleaving String
来源:互联网 发布:java认证有用吗 编辑:程序博客网 时间:2024/05/22 13:15
class Solution {public: bool isInterleave(string s1, string s2, string s3) { int len1 = s1.length(), len2 = s2.length(), len3 = s3.length(); if(len3 != len1 + len2){ return false; } if(len1 == 0){ return s2 == s3; } if(len2 == 0){ return s1 == s3; } vector<vector<int> >dp; dp.resize(len2 + 1); for(int i = 0; i <= len2; ++i){ dp[i].resize(len3 + 1, 0); } dp[0][0] = 1; dp[1][1] = s2[0] == s3[0]; dp[0][1] = s1[0] == s3[0]; int leftlen1; for(int i = 2; i <= len3; ++i){ //j == 0, completely match str1 leftlen1 = i; if(i <= len1){ if(s3[i - 1] == s1[leftlen1 - 1]){ dp[0][i] |= dp[0][i - 1]; } } for(int j = 1; j <= min(i, len2); ++j){ if(s3[i - 1] == s2[j - 1]){ dp[j][i] = dp[j - 1][i - 1]; } leftlen1 = i - j; if(leftlen1 == 0 || leftlen1 > len1){ continue; } if(s3[i - 1] == s1[leftlen1 - 1]){ dp[j][i] |= dp[j][i - 1]; } } } return dp[len2][len3]; }};
0 0
- LeetCode: Interleaving String
- LeetCode Interleaving String
- LeetCode: Interleaving String
- [Leetcode] Interleaving String
- [LeetCode] Interleaving String
- leetcode 68: Interleaving String
- [Leetcode] Interleaving String
- LeetCode - Interleaving String
- [LeetCode]Interleaving String
- LeetCode: Interleaving String
- Leetcode: Interleaving String
- [Leetcode]Interleaving String
- Leetcode: Interleaving String
- LeetCode:Interleaving String
- LeetCode-Interleaving String
- [leetcode] Interleaving String@DP
- LeetCode:Interleaving String
- LeetCode - Interleaving String
- sizeof
- open/read/write和fopen/fread/fwrite的区别
- EZchip(Tilera) SDN和NFV解决方案
- 第4周课后实践·阅读程序-构造函数与析构函数(1)
- CALayer简介 (三)UIView和CALayer之间的关系
- leetcode Interleaving String
- Unity3d fur真实毛发渲染
- 遍历路径 recursion
- epoll使用详解
- Oracle SQL:insert into语句总结 与 merge into用法总结
- $.jBox.success
- 简单工厂和工厂方法
- 机器学习常见算法分类汇总
- JAVA 接口和抽象类的区别