每日一题8
解题思路:滑动窗口
代码:
class Solution {
public int lengthOfLongestSubstring(String s) {
Set<Character> set=new HashSet<Character>(); // 使用HashMap,保证集合里无重复!
int n=s.length();
int ptr=-1; //右端点
int ans=0;
for(int i=0;i<n;i++){
if(i!=0){
set.remove(s.charAt(i-1)); //移除左端点
}
while(ptr+1<n && !set.contains(s.charAt(ptr+1)) ){ //如果集合里不包含右端点则把右端点加入集合,端点右移
set.add(s.charAt(ptr+1));
ptr++;
}
ans=Math.max(ans,ptr+1-i); // 记录字符串的最大值
}
return ans;
}
}
标签:set,HashMap,int,每日,重复,一题
From: https://www.cnblogs.com/ZLey/p/17173754.html