LeetCode – Refresh – Interleaving String

Notes:

1. Even s3 is empty string, if s1 and s2 are emtpy, then it should be true.

2. Do not mess up the size of label.

 1 class Solution {
 2 public:
 3     bool isInterleave(string s1, string s2, string s3) {
 4         int l1 = s1.size(), l2 = s2.size(), l3 = s3.size();
 5         if (l3 != l2 + l1) return false;
 6         vector<vector<bool> > dp(l1+1, vector<bool> (l2+1, false));
 7         dp[0][0] = true;
 8         for (int i = 1; i <= l1; i++) dp[i][0] = dp[i-1][0] && s1[i-1] == s3[i-1];
 9         for (int i = 1; i <= l2; i++) dp[0][i] = dp[0][i-1] && s2[i-1] == s3[i-1];
10         for (int i = 1; i <= l1; i++) {
11             for (int j = 1; j <= l2; j++) {
12                 dp[i][j] = ((dp[i-1][j] && s1[i-1] == s3[i+j-1]) ||
13                             (dp[i][j-1] && s2[j-1] == s3[i+j-1]) ||
14                             (dp[i-1][j-1] && s1[i-1] == s3[i+j-1] && s2[j-1] == s3[i+j-2]) ||
15                             (dp[i-1][j-1] && s1[i-1] == s3[i+j-2] && s2[j-1] == s3[i+j-1]));
16             }
17         }
18         return dp[l1][l2];
19     }
20 };
时间: 2024-11-11 01:26:50

LeetCode – Refresh – Interleaving String的相关文章

【leetcode】Interleaving String

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

Leetcode dp Interleaving String

Interleaving String Total Accepted: 15409 Total Submissions: 79580My Submissions 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&q

【LeetCode】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. [解析] 题意:有

[LeetCode][Java] 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. 题意: 给定s1, 

Java for LeetCode 097 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问题,JAV

【leetcode】 Interleaving String (hard)

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. 思路:做过几道动态规划了,终于也有了

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. 思路:此题刚开始有点想当然了

[LeetCode]Interleaving String关于遍历和动态规划

晚上做了一下leetcode的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.W

LeetCode: Interleaving String

LeetCode: 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"