😄😊😆😃😄😊😆😃
开始cpp刷题之旅。
目标:执行用时击败90%以上使用 C++ 的用户。
3. 无重复字符的最长子串
示例 1:
输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:
输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:
输入: s = “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。
解题:
看到一个使用双指针的解法,比较巧妙。
遍历数组,设置一个左指针i,表示搜索范围的起始点。 设置一个右指针j,表示搜索范围的终点。
每次使用string.find(char,int )去对一定范围内的字符串进行搜索,如果除了当前位置外还有别的结果,那就说明这个范围内的字符串是有重复字符串。
使用int类型的maxSubLen 来存储最长的无重复字符串个数。
当搜索出有重复字符串时,存储说明当前值在字符串中有重复。</