查找最长子串而不重复字符的代码不起作用

code for finding longest substring without repeating characters not working

我已经编写了以下代码来查找最长子字符串的长度,但没有重复下面的字符,但它不起作用 - 谁知道为什么? (我知道 Internet 上还有其他可行的解决方案,但以下代码是按照我的风格编写的,理想情况下我想对其进行调整)

def longestSubstring(str):

    start = 0
    maxLen = 1

    hashSet = set()

    for i in range(len(str)):

        if str[i] not in hashSet:
            hashSet.add(str[i])
            maxLen = max(maxLen, i - start + 1)
            continue

        else:

            while str[start] != str[i]:
                hashSet.discard(str[start])
                start += 1

            hashSet.discard(str[start])
            start += 1

    return maxLen

就一行,去掉第2个hashSet.discard(str[start])你不想把这个字符从集合中去掉,只需要增加start,就是你刚遇到的那个字符。