当前位置 : 主页 > 编程语言 > java >

剑指 Offer 48. 最长不含重复字符的子字符串

来源:互联网 收集:自由互联 发布时间:2023-09-03
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例1: "abc",所以其 示例 2: "b" 示例 3: "wke""pwke" 提示: s.length = 40000 使用滑动窗口,哈希表来记

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。

 

示例 1:

"abc",所以其

示例 2:

"b"

示例 3:

"wke"
"pwke"

 

提示:

  • s.length <= 40000

使用滑动窗口,哈希表来记录:

class Solution {
    public int lengthOfLongestSubstring(String s) {
        HashMap<Character, Integer> map = new HashMap<>();
        int max = 0;
        for (int i = 0,start = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            //如果重复
            if (map.containsKey(c)) {
                start = Math.max(map.get(c),start);
            }
            map.put(c,i+1);
            max = Math.max(max,i-start+1);
        }
        return max  ;
    }
}
【文章原创作者盐城网站设计 http://www.1234xp.com/yancheng.html 提供,感恩】
上一篇:架构师之路:接口幂等性设计的艺术
下一篇:没有了
网友评论