我觉得可以用双指针ij。大概思路就是逐渐增大ij之间的窗口大小,当大小等于p时就匹配成功了。 每次迭代,j指针指向下一个字符,当下一个字符数量已经超出时,向右移动i至当前字符值的下一个位置。 时间复杂度O(n). 输入: t=CABABBABC p=ABBC 迭代(左右括号代表ij): - []CABABBABC - [C]ABABBABC - [CA]BABBABC - [CAB]ABBABC - CA[BA]BBABC // 此处A的数量已经超出,所以i移动到了第一个A后面 - CA[BAB]BABC - CAB[ABB]ABC// 此处B的数量已经超出,所以i移动到了第一个B后面 - CABA[BBA]BC - CABAB[BAB]C - CABAB[BABC] // ij之间距离==4,return
点赞 评论

相关推荐

点赞 评论 收藏
分享
AAA不喝拿铁:校友好,开投就完事了!要准备面试的话更建议刷codetop,hot100有些题并不是面试常考题。另外想看刷题路线的可以看我的帖子,有讲怎么刷leetcode,除此之外可以看看我根据真实面经整理得到的最全(高/中/低频)面试题,加油
点赞 评论 收藏
分享
牛客网
牛客企业服务