leetcode-97. Interleaving String
2016-12-26 10:04
537 查看
leetcode-97. Interleaving String
题目: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.
这种题看起来比较难懂,时间上做多了还是套路的题,这样的字符串匹配或者的组合之类的题目,或者说对于有多中情况得到解的情况实际上都应该优先考虑DP算法。
我在做这题的时候使用了一个int[][]来保存当前位置匹配的最长字符串,然后如果最右下角的位置匹配的是S3的长度则说明当前完成匹配。看答案似乎大部分人用的是boolean[][]我一开始觉得这种方法不一定能行。实际上还是自己思考深度不够。不过不管用什么思路都是类似的
public class Solution { public boolean isInterleave(String s1, String s2, String s3) { if(s1.length()+s2.length()!=s3.length()) return false; int[][] mat = new int[s1.length()+1][s2.length()+1]; for(int i = 0 ; i <= s1.length();i++) for(int j = 0 ; j <= s2.length();j++){ if(i>0 && s3.charAt(mat[i-1][j])==s1.charAt(i-1)) mat[i][j] = mat[i-1][j]+1; if(j>0 && s3.charAt(mat[i][j-1])==s2.charAt(j-1)) mat[i][j] = Math.max(mat[i][j],mat[i][j-1]+1); } return mat[s1.length()][s2.length()]==s3.length(); } }
相关文章推荐
- LeetCode 97. Interleaving String(字符串交织)
- [leetcode] 97.Interleaving String
- [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 @python
- LeetCode 97. Interleaving String 题解
- [leetcode]97. Interleaving String(Java)
- [LeetCode]97.Interleaving String
- Leetcode 97. Interleaving String
- LeetCode 97. Interleaving String
- [Leetcode]@python 97. Interleaving String