package leetcode;
import java.util.HashSet;
import java.util.Set;
public class offer_48 {
public int lengthOfLongestSubstring(String s) {
if(s.equals(" ")) {return 1;}
int maxlength=0;
int right=0;
int left=0;
Set<Character> set=new HashSet<Character>();
//滑动窗口
while(right<s.length()&&left<s.length()) {
//找出当前无重复子串的右边界
while(right<s.length()&&!set.contains(s.charAt(right))) {
set.add(s.charAt(right));
//若当前子串不重复,则窗口右边界增加
right=right+1;
}
//更新最大长度
if(set.size()>maxlength) {
maxlength=set.size();
}
//更新窗口左边界
if(right<s.length()) {
while(left<right&&set.contains(s.charAt(right))) {
set.remove(s.charAt(left));
left=left+1;
}
}
}
return maxlength;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
offer_48 off=new offer_48();
System.out.println(off.lengthOfLongestSubstring("pwwkew"));
}
}