查找最长子串而不重复字符的代码不起作用
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,就是你刚遇到的那个字符。
我已经编写了以下代码来查找最长子字符串的长度,但没有重复下面的字符,但它不起作用 - 谁知道为什么? (我知道 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,就是你刚遇到的那个字符。