1)双指针,若fast不存在temp中,则加入。若存在则删除首位,slow前进一位。
保留一个临时变量保存最大长度。
时间复杂度O(n)
class Solution: def lengthOfLongestSubstring(self, s: str) -> int: length = len(s) if length == 0: return 0 if length == 1: return 1 result = list() slow = 0 fast = 1 maxlength = 0 temp = s[slow] while slow <length and fast < length: if s[fast] not in temp: temp += s[fast] fast += 1 else: slow += 1 temp =s[slow:fast] maxlength = max(maxlength, len(temp)) return maxlength