Runtime: 130 ms, faster than 5.31% of C++ ,Memory Usage: 7 MB, less than 11.99% of C++

two methods 1st top down 2nd recurssion

    int ss(vector<char>a,vector<char>b,int aa,int bb)
    {
        int t[aa+2][bb+2];
        memset(t,0,sizeof(t));      
        for(int i=1;i<=aa;i++)
        {
            for(int j=1;j<=bb;j++)
            {
                if(a[i-1]==b[j-1])
                    t[i][j]=1+t[i-1][j-1];
                else
                    t[i][j]=t[i][j-1];
            }
        } 
        return t[aa][bb];   
    }
    

    bool isSubsequence(string s, string t) {
        
        vector<char>a(s.begin(),s.end());
        for(auto x:a)cout<<x;
        vector<char>b(t.begin(),t.end());
        int x=s.size();
        int y=t.size();
        int p=ss(a,b,x,y);
        if(p==x)return true;
        return false;
        
    }
	```
	
	or 
	
	```
	    int ss(vector<char>a,vector<char>b,int aa,int bb)
    {
        if(aa==0||bb==0)
        {
            return 0;
        }
        if(a[aa-1]!=b[bb-1])
        {
            return ss(a,b,aa,bb-1);
        }
 
        return(1+ss(a,b,aa-1,bb-1));
        
    }
	
	    bool isSubsequence(string s, string t) {
        
        vector<char>a(s.begin(),s.end());
        for(auto x:a)cout<<x;
        vector<char>b(t.begin(),t.end());
        int x=s.size();
        int y=t.size();
        int p=ss(a,b,x,y);
        if(p==x)return true;
        return false;
        
    }
	```
Comments (0)