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;
}
```