無重複字符的最長子串(力扣)

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;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章