package org.example.algorithm;
import java.util.HashMap;
import java.util.Map;
public class LongofSubstring {
public int longestSubstring(String s) {
if(s == null || s.length() == 0){
return 0;
}
Map<Character, Integer> accountMap = new HashMap<Character, Integer>();
int a = 1;
accountMap.put(s.charAt(0), 0);
int res = 1;
for(int i = 1; i < s.length(); i++){
if(!accountMap.containsKey(s.charAt(i))){
a = a + 1;
}else {
int k = accountMap.get(s.charAt(i));
a = i - k <= a ? i - k : a + 1;
}
res = Math.max(res,a);
accountMap.put(s.charAt(i),i);
}
return res;
}
public static void main(String[] args) {
LongofSubstring longofSubstring = new LongofSubstring();
int sublen = longofSubstring.longestSubstring("abcabcdb");
System.out.println(sublen);
}
}