判断子序列
题目解析
题目要求判断s是否为t的子序列,即s中的字符依次存在于t中即可。所以使用双指针的方式,从左至you依次进行比较。
代码实现
当s[i] == t[j],说明满足条件,继续向后判断,双指针分别后移。若不等,则可能是还没有找到t中相同的,所以j指针后移。若j超出t的长度,说明找遍t也没有找到相同的,则说明s不是t的子序列,提前返回false。若遍历完整个s数组,说明s数组中元素均已在t中依次找到相等的,说明是t的子序列,返回true。
class Solution {
public:
bool isSubsequence(string s, string t) {
int i = 0, j = 0;
while(i < s.size()){
if (s[i] == t[j]){
i++;
j++;
}
else if(j < t.size()) j++;
else return false;
}
return true;
}
};