[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-97-Interleaving String]
[Leetcode] 97. Interleaving String