标签:nbsp str cto 状态 tor false amp public leetcode
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
标签:nbsp str cto 状态 tor false amp public leetcode
原文地址:http://www.cnblogs.com/zeeroo32/p/6493281.html