public static void main(String[] args) {
String a = "abcabcbb";
String b = "bbbbb";
System.out.println(process(a.toCharArray()));
System.out.println(process(b.toCharArray()));
System.out.println(" ".trim().equals(""));
}
public static int process(char[] chs){
int[] dp = new int[chs.length];
int[] map = new int[128];
for(int i = 0; i <map.length; i ++){
map[i] = -1;
}
int max = 1;
dp[0] = 1;
map[chs[0]] = 0;
for(int i = 1 ; i < chs.length; i ++){
int l1 = map[chs[i]];
int l2 = i-1 - dp[i-1];
dp[i] = i - Math.max(l1, l2);
map[chs[i] ] = i;
max = Math.max(max, dp[i]);
}
return max;
}