码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] Interleaving String

时间:2017-03-03 01:49:54      阅读:158      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!