zoukankan      html  css  js  c++  java
  • LeetCode: Interleaving String

    第一次dfs, 没过large, 马上想到dp, 一次过了

     1 class Solution {
     2 public:
     3     bool isInterleave(string s1, string s2, string s3) {
     4         // Start typing your C/C++ solution below
     5         // DO NOT write int main() function    
     6         if (s3.size() != s1.size()+s2.size()) return false;
     7         int m = s1.size();
     8         int n = s2.size();
     9         vector<vector<bool>> f(m+1, vector<bool>(n+1));
    10         f[0][0] = true;
    11         for (int i = 1; i <= m; i++) {
    12             f[i][0] = s1[i-1] == s3[i-1]? f[i-1][0]:false;
    13         }
    14         for (int i = 1; i <= n; i++) {
    15             f[0][i] = s2[i-1] == s3[i-1]? f[0][i-1]:false;
    16         }
    17         for (int i = 1; i <= m; i++) {
    18             for (int j = 1; j <= n; j++) {
    19                 f[i][j] = (f[i-1][j] && s1[i-1] == s3[i+j-1]) || (f[i][j-1] && s2[j-1] == s3[i+j-1]);
    20             }
    21         }
    22         return f[m][n];
    23     }
    24 };

     C#

     1 public class Solution {
     2     public bool IsInterleave(string s1, string s2, string s3) {
     3         if (s3.Length != s1.Length + s2.Length) return false;
     4         bool[,] f = new bool[s1.Length+1, s2.Length+1];
     5         f[0, 0] = true;
     6         for (int i = 1; i <= s1.Length; i++) {
     7             f[i, 0] = s1[i-1] == s3[i-1]? f[i-1, 0] : false;
     8         }
     9         for (int i = 1; i <= s2.Length; i++) {
    10             f[0, i] = s2[i-1] == s3[i-1]? f[0, i-1] : false;
    11         }
    12         for (int i = 1; i <= s1.Length; i++) {
    13             for (int j = 1; j <= s2.Length; j++) {
    14                 f[i, j] = (f[i-1, j] && s1[i-1] == s3[i+j-1]) || (f[i, j-1] && s2[j-1] == s3[i+j-1]);
    15             }
    16         }
    17         return f[s1.Length, s2.Length];
    18     }
    19 }
    View Code
  • 相关阅读:
    struct page*
    ARM平台linux内核Notes 1
    CTDIY1字符设备驱动的使用
    深入理解linux内核读书笔记1
    在linux下设置pl2303串口
    struct per_cpu_pageset
    ARM平台linux内核Notes 2
    CTDIY2字符设备驱动的注册
    深入理解linux内核读书笔记2
    How to rollback a transaction in TSQL
  • 原文地址:https://www.cnblogs.com/yingzhongwen/p/2993482.html
Copyright © 2011-2022 走看看