题目要求:
class Solution {
public int lengthOfLongestSubstring(String s) {
int maxLength = 0; // 最长无重复字符子串的长度
int start = 0; // 滑动窗口的起始位置
//hkcpmprxxxqw // pwwkew //abcabcbb
for (int end = 0; end < s.length(); end++) {
char currentChar = s.charAt(end);
// 查找当前字符从start开始的下一次出现的位置
int newIndex = s.indexOf(currentChar, start);
// 如果找到了并且位置在end之前,说明有重复字符
if (newIndex >= 0 && newIndex < end) {
// 更新滑动窗口的起始位置
start = newIndex + 1;
}
// 计算当前窗口的大小,并更新最长无重复字符子串的长度
int currentLength = end - start + 1;
maxLength = Math.max(maxLength, currentLength);
}
return maxLength;
}
}