zoukankan      html  css  js  c++  java
  • Interleaving String

    Given s1s2s3, find whether s3 is formed by the interleaving of s1 and s2.

    For example,
    Given:
    s1 = "aabcc",
    s2 = "dbbca",

    When s3 = "aadbbcbcac", return true.
    When s3 = "aadbbbaccc", return false.

    class Solution {
    private:
        string s1,s2,s3;
        int** able;
    public:
        bool isInterleave(string s1, string s2, string s3) 
        {
            if(s1.length()+s2.length()!=s3.length()) return false;
            this->s1=s1;
            this->s2=s2;
            this->s3=s3;
            able=new int*[s1.length()+1];
            for(int i=0;i<=s1.length();i++)
            {
                able[i]=new int[s2.length()+1];
                for(int j=0;j<=s2.length();j++)
                    able[i][j]=0;
            }
            able[0][0]=1;
            
            return isleave(s1.length(),s2.length());
        }
        bool isleave(int index1,int index2)
        {
            if(able[index1][index2]!=0) return able[index1][index2]==1;
            if(index2>0 && isleave(index1,index2-1) && s3[index1+index2-1]==s2[index2-1])
            {
                able[index1][index2]=1;
                return true;
            }
            if(index1>0 && isleave(index1-1,index2) && s3[index1+index2-1]==s1[index1-1])
            {
                able[index1][index2]=1;
                return true;
            }
            able[index1][index2]=-1;
            return false;
        }
    };
  • 相关阅读:
    amd
    富文本编辑器
    css module
    uc浏览器调试
    mysql利用sql语句将查询结果导出
    自启程序为何自启失败?
    nginx4层代理ssh服务
    创建SFTP用户并指定访问目录 Linux
    01月04日17:15:40 学习进度笔记
    01月04日10:39:23总结
  • 原文地址:https://www.cnblogs.com/erictanghu/p/3759581.html
Copyright © 2011-2022 走看看