如果用递归或许可以解决,但是,100也不是个小数字。考虑使用双指针,一次循环来解决:
class Solution {
public:
bool isSubsequence(string s, string t) {
for(size_t i = 0, j = 0; i < s.length(); ++i, ++j){
while(t[j] != s[i] && j < t.length()){
++j;
}
if(j == t.length())
return false;
}
return true;
}
};
特别注意双指针的移动,第一次submit的错误出现在i++的时候,没有进行j++,那么在leetcode可以找出来子串leeeeeetcode,因为e会判断多次。