又来到一晚一度的leetcode刷题时间。今天我们继续看双指针。为什么总是分享双指针的题目?肯定是因为经典又好用啦。好啦,分享最好一道双指针的题目(应该是最后一道了,明天博主努力找别的知识点的经典题目,hhh)。
直接上题目:

基本思路;
我们初始化两个指针 ii 和 jj,分别指向 ss 和 tt 的初始位置。每次贪心地匹配,匹配成功则 ii 和 jj 同时右移,匹配 ss 的下一个位置,匹配失败则 jj 右移,ii 不变,尝试用 tt 的下一个字符匹配 ss。最终如果 ii 移动到 ss 的末尾,就说明 ss 是 tt 的子序列。
解题方法:
class Solution
{
public:
bool isSubsequence(string s, string t)
{
int n = s.length(), m = t.length();//求长度
int i = 0, j = 0;
while (i < n && j < m)
{
if (s[i] == t[j])
{
i++;
}
j++;
}
return i == n;
}
};
这其实和“看毛片(KMP)”算法很相似,不懂的,没关系,自己上网或查书,以后我也会分享的。
本贴为博主亲手整理。如有错误,请评论区指出,一起进步。谢谢大家的浏览.
本文介绍了一道LeetCode上的双指针算法题目,讲解了如何通过双指针判断一个字符串是否是另一个字符串的子序列。博主分享了基本思路和解题代码,并将此方法与KMP算法进行了简单对比。文章鼓励读者自行研究并讨论相关算法。
329

被折叠的 条评论
为什么被折叠?



