❤ 作者主页:李奕赫揍小邰的博客
❀ 个人介绍:大家好,我是李奕赫!( ̄▽ ̄)~*
🍊 记得点赞、收藏、评论⭐️⭐️⭐️
📣 认真学习!!!🎉🎉
文章目录
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
解法一:滑动窗口
因为要找到不重复的最长字符串,我们需要两个指针,左边的指针先固定,右边的指针一个一个加入集合中,每次都判断一次是否有重复的值,如果有就结束,判断这次的长度跟上次的长度谁长,然后左指针向右移动一个,然后右指针继续上述操作直至结束。
public int lengthOfLongestSubstring(String s) {
Set<Character> set=new HashSet<Character>();
int length=s.length();
int rigth=0,max=0;
for(int i=0;i<length;i++){
if(i!=0)
set.remove(s.charAt(i-1));
while(rigth<length&&!set.contains(s.charAt(rigth))){
set.add(s.charAt(rigth));
rigth++;
}
max=Math.max(max,rigth-i);
}
return max;
}