LeetCode: Interleaving String
来源:互联网 发布:c语言找质数 编辑:程序博客网 时间:2024/05/01 20:01
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.
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: 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
- python基本概念
- MS-SQL中Insert操作插入的中文变成问号"???"的解决办法
- HTML <!DOCTYPE> 标签
- 做人要有心机全集
- Ibatis 增删改查语句
- LeetCode: Interleaving String
- MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXXXX'的问题
- NSTimer
- LNK2019
- mysql创建 存储过程 并通过java程序调用该存储过程
- SHELL 变量处理判断式
- jbpm4.4流程
- Loadrunner的参数和变量
- Android Activity中启动另一应用程序的方法,无需得到类名