Greedy recursive algorithm:

If there's nothing left to check, it's valid.

Look for the char in t,

If there's chars to check, but none of t left, it's invalid.

else try the next char of t

Repeat.

```
bool isSubsequence(char* s, char* t) {
if (*s=='\0'){
return true;
}
while(*s!=*t){
if(*t=='\0'){
return false;
}
t = t + 1;
}
return isSubsequence(s+1, t+1);
}
```