欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

无重复字符的最长子串(力扣)

程序员文章站 2024-02-21 14:23:22
...

无重复字符的最长子串(力扣)

import java.util.HashMap;

//无重复字符的最长子串
public class Test {

    public static void main(String[] args) {
        String str = "abdglsrtylpob123";
        System.out.println(lengthOfLongestSubstring(str));
    }

    //滑动窗口机制
    public static int lengthOfLongestSubstring(String s) {
        HashMap<Character,Integer> hashMap = new HashMap<>();
        int maxlength = 0;
        int n = s.length();
        int start = 0;
        for (int i = 0 ; i < n; i++) {
            if (hashMap.containsKey(s.charAt(i))){
                start = Math.max(start,hashMap.get(s.charAt(i))+1);
            }
            maxlength = Math.max(maxlength,i-start+1);
            hashMap.put(s.charAt(i),i);
        }
        return maxlength;
    }
}

 

相关标签: 每日一题