Leetcode3 无重复字符的最长子串
作者:互联网
题目
思考
- 突破点:从一个字符 i 出发,当碰到子串中存在重复字符 j 时,则从下一个字符 i+1 开始判断,其中 i+1 到 j 一定时不重复的!
代码
public int lengthOfLongestSubstring(String s) {
Set<Character> res = new HashSet<>();
int ans = 0;
int tail = 0;
for (int i = 0; i < s.length(); i++) {
if(i!=0){
//去除头字符
res.remove(s.charAt(i-1));
}
while(tail<s.length() && !res.contains(s.charAt(tail))){
res.add(s.charAt(tail));
tail++;
}
ans = Math.max(ans, res.size());
}
return ans;
}
标签:子串,字符,Leetcode3,int,res,tail,ans,charAt 来源: https://blog.csdn.net/TTryAAgian/article/details/121185166