import java.util.HashSet;
import java.util.Set;
public class LeetCode3 {
/*
* 使用滑动窗口的方式解决此问题。
* i,j均在首位置,i一直向后走,j不动。
* 如果set中不存在,将str.chatAt(i)值放到Set中,max值与set.size()比较,取最大值。
* 如果set中存在,循环删除set中str.chatAt(j),j向后移动一格,直到没有重复,将str.chatAt(i)放入set。
*/
public static int getMaxStr(String str){
int max=0;
Set s=new HashSet<>();
for(int i=0,j=0;i<str.length();i++){
if(s.contains(str.charAt(i))){
while(s.contains(str.charAt(i))){
s.remove(str.charAt(j));
j++;
}
s.add(str.charAt(i));
}else{
s.add(str.charAt(i));
max=Math.max(max,s.size());
}
}
return max;
}
public static void main(String[] args) {
String s="qrsvbspk";
System.out.println(getMaxStr(s));
}
}