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
最新推荐文章于 2025-05-18 01:04:12 发布
本文介绍了一种使用Java解决寻找字符串中最长无重复字符子串长度的方法,包括使用辅助数组来跟踪字符出现的位置,并通过循环遍历字符串来更新最长子串长度。
981

被折叠的 条评论
为什么被折叠?



