核心概念:移动窗口
代码如下
public static void main(String[] args) {
String s = "abcabc";
Set<Character> set = new HashSet<>();
int length = 0;
int left = 0;
int right = 0;
while (right < s.length()) {
if (!set.contains(s.charAt(right))) {
set.add(s.charAt(right++));
} else {
set.remove(s.charAt(left++));
}
length = set.size() > length ? set.size(): length;
}
System.out.println(length);
}