class Solution: def lengthOfLongestSubstring(self, s: str) -> int: record = set() l = 0 res = 0 for r in range(len(s)): while s[r] in record: record.remove(s[l]) l += 1 record.add(s[r]) res = res if r - l + 1 < res else r - l + 1 return res
classSolution { publicintlengthOfLongestSubstring(String s) { Map<Character, Integer> record = newHashMap<>(); //记录已遍历的最长不重复连续子串 // 定义滑动窗口 intl=0; int r; intres=0; for (r = 0; r < s.length(); r++){ //遍历字符 // 判断是否已记录,如果没有则添加,如果有,则在记录中删除并滑动left while(record.containsKey(s.charAt(r))){ // 有,删除并滑动窗口 record.remove(s.charAt(l)); l += 1; } record.put(s.charAt(r), r); // 已记录的和当前的滑动窗口长度选择较大的 res = r - l + 1 < res ? res : r - l + 1; }