Leetcode 97. Interleaving String
2017-12-29 18:25
369 查看
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.
超时 99 / 101
动态规划
For example,
Given:
s1 = “aabcc”,
s2 = “dbbca”,
When s3 = “aadbbcbcac”, return true.
When s3 = “aadbbbaccc”, return false.
超时 99 / 101
class Solution { public: bool isInterleave(string s1, string s2, string s3) { if (s3.size() != (s1.size() + s2.size())) return false; if (s3 == "" && s1 == "" && s2 == "") return true; if (s1[0] == s3[0] && isInterleave(string(s1.begin() + 1, s1.end()), s2, string(s3.begin() + 1, s3.end()))) return true; if (s2[0] == s3[0] && isInterleave(s1, string(s2.begin() + 1, s2.end()), string(s3.begin() + 1, s3.end()))) return true; return false; } };
动态规划
class Solution { public: bool isInterleave(string s1, string s2, string s3) { size_t n1 = s1.size(); size_t n2 = s2.size(); size_t n3 = s3.size(); if (n3 != n2 + n1) return false; vector<vector<int> > dp(n1 + 1, vector<int>(n2 + 1, 0)); dp[0][0] = 1; for (size_t i = 1; i <= n1; ++i) { if (dp[i - 1][0] == 1 && s3[i - 1] == s1[i - 1]) dp[i][0] = 1; } for (size_t i = 1; i <= n2; ++i) { if (dp[0][i - 1] == 1 && s3[i - 1] == s2[i - 1]) dp[0][i] = 1; } for (size_t i = 1; i <= n1; ++i) { for (size_t j = 1; j <= n2; ++j) { if ((dp[i][j - 1] == 1 && s3[i + j - 1] == s2[j - 1]) || dp[i - 1][j] == 1 && s3[i + j - 1] == s1[i - 1]) dp[i][j] = 1; } } return dp[n1][n2]; } };
相关文章推荐
- Leetcode 97. Interleaving String
- [Leetcode] 97. Interleaving String
- LeetCode 97. Interleaving String
- leetcode 97. Interleaving String(字符串交错出现) DFS深度优先遍历 + 很明显很经典的DP动态规划做法
- Leetcode 97. Interleaving String 交错字符判别 解题报告
- leetcode 97. Interleaving String
- Leetcode 97. Interleaving String
- leetcode 97. Interleaving String
- leetcode 97. Interleaving String
- leetcode 97. Interleaving String
- LeetCode 97. Interleaving String
- Leetcode - 97.Interleaving String
- Leetcode 97. Interleaving String
- [leetcode]97. Interleaving String(Java)
- leetcode: 97. Interleaving String
- Leetcode 97. Interleaving String
- [Leetcode]@python 97. Interleaving String
- Leetcode:97. Interleaving String
- LeetCode 97. Interleaving String
- [leetcode] 97.Interleaving String