public int lengthOfLongestSubstring(String s) {
// Start typing your Java solution below
// DO NOT write main() function
int max = 0;
int tempMax = 0;
int length = s.length();
int[] array = new int[26];
int i = 0;
while(i < length){
if(contains(s.charAt(i),array)){
i = i - length(array) + 1;
clear(array);
tempMax = 0;
continue;
}
tempMax++;
array[s.charAt(i) - 'a'] = 1;
if(tempMax > max){
max = tempMax;
}
i++;
}
return max;
}
public boolean contains(char c,int[] array){
return array[c - 'a'] == 1;
}
//这一次匹配了多少个字符
public int length(int[] array){
int count = 0;
for(int i = 0; i < array.length;i ++){
count += array[i];
}
return count;
}
public void clear(int[] array){
for(int i = 0; i < array.length;i++){
array[i] = 0;
}
}
Longest Substring Without Repeating Characters
最新推荐文章于 2013-05-19 16:05:26 发布