LeetCode: Interleaving String
2013-05-29 11:18
435 查看
Given s1, s2, s3,
find whether s3 is formed by the interleaving of s1 and s2.
For example,
Given:
s1 =
s2 =
When s3 =
return true.
When s3 =
return false.
Naive solution:
Recursion
if (s1[0] == s3[0] && isInterteaving(s1[1], s2, s3[1]))
return true;
if (s2[0] == s3[0] && isInterleaving(s1, s2[1], s3[1]))
return true;
return false;
Using recursion, a lot of case will be evaluated multiple times, thus, complexity grows exponentially. Use DP will solve. We actually need to calculate
(s1[0], s2[0]), (s1[1], s2[0]), (s1[0], s2[1]), ....
Thus we could build a (m+1)*(n+1) array, m is s1 length and n is s2 length
if(s1[i]== s3[i+j] && dp[i+1][j])
dp[i][j] = true;
else
if(s2[j]==s3[j] && dp[i][j+1])
dp[i][j] = true;
else
dp[i][j] = false
Pass large tests within 20 ms
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.
Naive solution:
Recursion
if (s1[0] == s3[0] && isInterteaving(s1[1], s2, s3[1]))
return true;
if (s2[0] == s3[0] && isInterleaving(s1, s2[1], s3[1]))
return true;
return false;
Using recursion, a lot of case will be evaluated multiple times, thus, complexity grows exponentially. Use DP will solve. We actually need to calculate
(s1[0], s2[0]), (s1[1], s2[0]), (s1[0], s2[1]), ....
Thus we could build a (m+1)*(n+1) array, m is s1 length and n is s2 length
if(s1[i]== s3[i+j] && dp[i+1][j])
dp[i][j] = true;
else
if(s2[j]==s3[j] && dp[i][j+1])
dp[i][j] = true;
else
dp[i][j] = false
Pass large tests within 20 ms
相关文章推荐
- [leetcode] 97.Interleaving String
- leetcode Interleaving String
- 【leetcode】Interleaving String
- leetcode-Interleaving String
- LeetCode:Interleaving String
- leetcode:Interleaving String 使用动态规划求解的java源代码
- leetcode: Interleaving String
- LeetCode 97 Interleaving String
- Leetcode:97. Interleaving String
- Interleaving String - LeetCode
- [Leetcode]@python 97. Interleaving String
- [LeetCode]Interleaving String
- LeetCode097 Interleaving String
- LEETCODE: Interleaving String
- LeetCode: Interleaving String
- [LeetCode] Interleaving String
- [Leetcode] #97 Interleaving String
- 【LeetCode】Interleaving String && CSDN 交替字符串
- leetcode: Interleaving String
- 【LeetCode】【97】Interleaving String