LeetCode 159题:如何找到只包含最多两个不同字符的最长连续子串?
- 内容介绍
- 文章标签
- 相关推荐
本文共计899个文字,预计阅读时间需要4分钟。
159. 寻找包含两个不同字符的最长子串;知识点:字符串;滑动窗口;题目描述:给定一个字符串s,找出一对最长的、包含两个不同字符的子串,并返回该子串。可以使用一个滑动窗口来解决这个问题。设定一个字符串s+,将其与s拼接,这样当滑动窗口遇到重复字符时,可以通过比较s+中相同位置的两个字符来判断。具体步骤如下:
1. 创建一个长度为256的数组counts,用于记录每个字符的出现次数。
2.初始化左右指针left和right,将right指向字符串s的末尾,left指向字符串s的开始。
3.在右指针右移时,增加counts中相应字符的计数。
4.当counts中两个字符的计数都大于1时,将左指针右移,减少counts中相应字符的计数,直到找到满足条件的子串。
5.每次找到满足条件的子串,比较其长度与当前记录的最长子串长度,如果更长,则更新记录。
6.返回记录的最长子串。
159.至多包含两个不同字符的最长子串题目描述知识点:字符串;滑动窗口
给定一个字符串 s ,找出 至多 包含两个不同字符的最长子串 t 。
注意:
对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。
本文共计899个文字,预计阅读时间需要4分钟。
159. 寻找包含两个不同字符的最长子串;知识点:字符串;滑动窗口;题目描述:给定一个字符串s,找出一对最长的、包含两个不同字符的子串,并返回该子串。可以使用一个滑动窗口来解决这个问题。设定一个字符串s+,将其与s拼接,这样当滑动窗口遇到重复字符时,可以通过比较s+中相同位置的两个字符来判断。具体步骤如下:
1. 创建一个长度为256的数组counts,用于记录每个字符的出现次数。
2.初始化左右指针left和right,将right指向字符串s的末尾,left指向字符串s的开始。
3.在右指针右移时,增加counts中相应字符的计数。
4.当counts中两个字符的计数都大于1时,将左指针右移,减少counts中相应字符的计数,直到找到满足条件的子串。
5.每次找到满足条件的子串,比较其长度与当前记录的最长子串长度,如果更长,则更新记录。
6.返回记录的最长子串。
159.至多包含两个不同字符的最长子串题目描述知识点:字符串;滑动窗口
给定一个字符串 s ,找出 至多 包含两个不同字符的最长子串 t 。
注意:
对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。

