题目地址: https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
代码
public static int lengthOfLongestSubstring(String s) {
int front = 0;//最前位置
int result = 0;//最终结果
int b=0;//当前最大值
int[] arr = new int[256];//记录字符的数组
for(int i=0;i<arr.length;i++){
arr[i]=-1;//初始化-1
}
for(int i=0;i<s.length();i++){
char a = s.charAt(i);
//如果这个位置出现过并且在最前位置的后面
if(arr[a]!=-1 && arr[a]>=front){
front =arr[a]+1;//更新最前位置
b = i-front;//更新当前最大值
}
b++;//当前最大值+1,i后移,b会增加1
arr[a]=i;//更新a,记录a出现过的最靠后的位置
if(result<b){
//更新最终结果
result = b;
}
}
return result;
}