这个题除了遍历之外没想到别的方法,用递归的写法发现报出内存不够的错误,最后还是用了for循环:
class Solution {
public:
bool isSubsequence(string s, string t) {
int m = s.size();
int n = t.size();
int iter1 = 0, iter2 = 0;
if(m > n)
return false;
while(1)
{
if(iter1 >= m) //iter1的判断一定要放在iter2判断的前面,不然如果两个字符串最后一个字母相同的话返回的是false,就不对了
return true;
if(iter2 >= n)
return false;
if(s[iter1] == t[iter2])
{
iter1++;
iter2++;
}
else
{
iter2++;
}
}
}
};