双指针

解决问题:快慢指针、两数之和、滑动窗口、归并两个有序数组

删除至少一个字符问题?根据最后需要求的结果使用何种方法来处理。
那就在不满足的条件下,删除一个字符,然后判断是否能够满足最后的结果。如果包含多种情况,需要写函数进行接下来的判断。

> 680. 验证回文字符串 Ⅱ
> 给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
> 输入: s = "aba"
> 输出: true

1.控制滑动窗口的大小为固定大小
2.保证统计出的字符对应大小相等

438. 找到字符串中所有字母异位词
给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。
异位词 指字母相同,但排列不同的字符串。

1.滑动窗口大小不固定
2.当前不满足覆盖条件时,需要移动右指针。满足覆盖条件,移动左指针,缩小窗口维护答案数组
3.map记录模式子串中每个字符的频率,另外一个map记录窗口内的字符频率,最后比较两个map是否相等(或者是字符数量是否一致)

76. 最小覆盖子串
(https://leetcode-cn.com/problems/minimum-window-substring/?utm_source=LCUS&utm_medium=ip_redirect&utm_campaign=transfer2china) 
给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。
注意:
对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。
如果 s 中存在这样的子串,我们保证它是唯一的答案。
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务