leetcode-无重复字符的最长子串
一、题目
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
示例 1:
输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:
输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:
输入: “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,”pwke” 是一个子序列,不是子串。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
二、分析
设置 start 标志位,从前往后依次遍历字符位置 map
每次出现的字母,都缓存其最后一次出现的索引
如果当前字母的的 lastidx 大于或者等于 start,则 start 标志位移动到 lastidx 的前面一位,否则 start 标志不移动
每次遍历都更新 lastidx 和 maxlength,maxlength= 当前遍历位置 -start+1,即当前位置和 start 的距离
三、代码实现
1 | package problem0003 |
- 本文标题:leetcode-无重复字符的最长子串
- 本文作者:beyondhxl
- 本文链接:https://www.beyondhxl.com/post/f74735c.html
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!