剑指 Offer 48. 最长不含重复字符的子字符串(中等)Java【JAVA教程】

!
也想出现在这里? 联系我们
信息

剑指 Offer 48. 最长不含重复字符的子字符串(中等)Java,第1张

题目描述

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

示例:

思路:

之前做过相关的题,思路是建立hashmap,k值储存charAt(i)的值,value 储存位置。

代码:

class Solution {
    public int lengthOfLongestSubstring(String s) {
        if (s.length()==0){
            return 0;
        }
        int max=0;
        int left=0;
        HashMap<Character, Integer> map = new HashMap<>();
        for (int i=0;i<s.length();i++){   
            if(map.containsKey(s.charAt(i))){
                left = Math.max(left,map.get(s.charAt(i)) + 1);
            }
            max=Math.max(max,i-left+1);
            map.put(s.charAt(i),i);
        }
        return max;
    }
}

结果:

© 版权声明
THE END
喜欢就支持一下吧
点赞191 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容