首页 > 代码库 > [LeetCode] Interleaving String
[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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。