[leetcode]97. Interleaving String(Java)
2017-07-13 10:15
441 查看
https://leetcode.com/problems/interleaving-string/#/description
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 =
4000
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.
package go.jacob.day713; /** * * 97. Interleaving String * * @author Jacob * */ public class Demo1 { public boolean isInterleave(String s1, String s2, String s3) { if (s1.length() + s2.length() != s3.length()) return false; boolean[][] res = new boolean[s1.length() + 1][s2.length() + 1]; res[0][0] = true; for (int i = 0; i < s1.length(); i++) { res[i + 1][0] = res[i][0] && s1.charAt(i) == s3.charAt(i); } for (int i = 0; i < s2.length(); i++) { res[0][i + 1] = res[0][i] && s2.charAt(i) == s3.charAt(i); } for (int i = 0; i < s1.length(); i++) { for (int j = 0; j < s2.length(); j++) { res[i + 1][j + 1] = (res[i][j + 1] && s1.charAt(i) == s3.charAt(i + j + 1)) || (res[i + 1][j] && s2.charAt(j) == s3.charAt(i + j + 1)); } } return res[s1.length()][s2.length()]; } /* * 自己天真的解法 必须要用动态规划解 */ public boolean isInterleave_1(String s1, String s2, String s3) { if (s1.length() + s2.length() != s3.length()) return false; int len = s3.length(); int m = 0, n = 0; for (int i = 0; i < len; i++) { if (m < s1.length() && s1.charAt(m) == s3.charAt(i)) m++; else if (n < s2.length() && s2.charAt(n) == s3.charAt(i)) n++; else return false; } return true; } }
4000
相关文章推荐
- 【leetcode】97. Interleaving String【java】动态规划,并有详细解释
- [Leetcode] 97. Interleaving String 解题报告
- leetcode 97. Interleaving String
- leetcode 97. Interleaving String
- [LeetCode]97.Interleaving String
- [Leetcode] Interleaving String (Java)
- 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
- [LeetCode]97. Interleaving String
- leetcode: 97. Interleaving String
- LeetCode 97. Interleaving String
- LeetCode 97. Interleaving String(字符串交织)