无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
class Solution {
public int lengthOfLongestSubstring(String s) {
if(s.length()<1){ //判断字符串长度是否小于1,小于1 就直接返回0
return s.length();
}
int left =0;
int right=0;
int sum =1;
Set <Character> window =new HashSet<>();
while(right<s.length()){
char rightChar =s.charAt(right);
while(window.contains(rightChar)){ // 如果窗口中已经有要添加的字符
window.remove(s.charAt(left)); //则把左侧的字符删掉,然后左指针加1
left++;
}
sum=Math.max(sum,right-left+1);
window.add(rightChar); // !!!!!!看不懂先看这段,再看上一段。先把第一个字符添加进窗口中
right++; //然后右指针开始加
}
return sum;
}
}