有啥不懂的评论区可以问
### 解题思路
双指针指向无重复字符的最长字串 而双指针构成的那部分可以看成一个滑动窗口 中间运用双for循环 外面for循环遍历整个字符串,内循环遍历整个滑动窗口 当外循环的字符在内循环的滑动窗口存在时,左指针指向内循环该字符指针的后一位,在求出最大的无重复字符最长字串的长度(最大值) 当外循环结束后,则整个代码运行结束
### 代码
java
class Solution {
public int lengthOfLongestSubstring(String s) {
if (s.length() == 1)
return 1;
// right = -1; 防止内循环在外循环运行第一次时执行
int right = -1;
int left = 0;
int nums = 0;
char[] bytes = s.toCharArray();
for (int i = 0; i < s.length(); i++) {
for (int j = left; j<=right;j++){
if (bytes[i] == bytes[j]){
left = j+ 1;
break;
}
}
right = i;
// 求最大值
nums = Math.max(nums,right - left + 1);
}
return nums;
}
}