[LeetCode] Interleaving String

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] Interleaving String相关的知识,希望对你有一定的参考价值。

1. 是一个很明显的动态规划题。

2. s3中的每个字符不是s1中的就是s2中的,只要根据它之前的状态做转移就可以。

 1 class Solution {
 2 public:
 3     bool isInterleave(string s1, string s2, string s3) {
 4         int n = s1.size();
 5         int m = s2.size();
 6         if (n + m != s3.size()) return false;
 7         vector<vector<int>> f(n+1, vector<int>(m+1));
 8         for (int i = 0; i <= n; i++) {
 9             for (int j = 0; j <= m; j++) {
10                 int idx = i + j - 1;
11                 if (i == 0 && j == 0) {
12                     f[i][j] = 1;
13                 } else {
14                     if (i && s1[i-1] == s3[idx]) f[i][j] |= f[i-1][j];
15                     if (j && s2[j-1] == s3[idx]) f[i][j] |= f[i][j-1];
16                 }
17             }
18         }
19         return f[n][m];
20     }
21 };

 

以上是关于[LeetCode] Interleaving String的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Interleaving String

leetcode - Interleaving String

[leetcode-97-Interleaving String]

[Leetcode] 97. Interleaving String

[LeetCode] Interleaving String

leetcode 97 Interleaving String