2022-7-8 剑指offer-字符串-滑动窗口
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。
1 class Solution { 2 public int lengthOfLongestSubstring(String s) { 3 int left=0,right=0; 4 Set<Character> set=new HashSet<>(); 5 int ans=0; 6 while (right<s.length()){ 7 char c=s.charAt(right); 8 if (!set.contains(c)) { 9 right++; 10 set.add(c); 11 ans=Math.max(ans,right-left); 12 }else{ 13 while (left<right&&set.contains(c)){ 14 set.remove(s.charAt(left)); 15 left++; 16 } 17 } 18 } 19 return ans; 20 } 21 }
思路:滑动窗口和集合判断字串是否有重复