package com.interview.algorithms.string;
/**
* Created_By: stefanie
* Date: 14-9-7
* Time: 下午1:55
*/
public class C11_23_LongestNonduplicateSubstring {
public static int find(String input){
if(input == null || input.length() == 0) return 0;
int max = 0;
int[] mark = new int[256];
int start = 1;
int j = 0;
for(;j < input.length(); j++){
char ch = input.charAt(j);
if(mark[ch] == 0){
mark[ch] = j + 1;
} else {
int len = j + 1 - start;
if(len > max) max = len;
start = Math.max(mark[ch] + 1, start);
mark[ch] = j + 1;
}
}
int len = j + 1 - start;
if(len > max) max = len;
return max;
}
}