字符串可以视为由单个字母组成的字符数组,寻找子串可以等效为寻找子数组,使用滑动窗口的方法,定义左、右索引。寻找重复最简单的是使用哈希集,使用其contains()方法。
class Solution {
public int lengthOfLongestSubstring(String s) {
int left = 0;
int right = 0;
int maxLen = 0;
Set<Character> list = new HashSet<>();
while(left < s.length() && right < s.length()){
if(!list.contains(s.charAt(right))){
list.add(s.charAt(right++));
maxLen = Math.max(maxLen, right-left);
}else{
list.remove(s.charAt(left++));
}
}
return maxLen;
}
}