我觉得可以用双指针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
点赞 评论

相关推荐

08-27 21:03
已编辑
西南石油大学 Java
冷花幽露:大概率是了,京东面试就是这样。我上周一面也是20多分钟,面试官问的很刁钻的问题也答上来了,面完过了几天还是没推进,泡池子,昨天一看挂了。如果一面完第2天没有收到2面邀请,基本上不用抱希望了。如果你的bg是985,面试流程也是和我们一样,20多分钟,唯一区别就是面完他们会很快收到二面邮件,而不像我们泡池子然后挂掉
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务