string - 用于查找最长子字符串而不重复字符的代码不起作用
问题描述
我编写了以下代码来查找最长子字符串的长度而不重复下面的字符,但它不起作用 - 有人知道为什么吗?(我知道互联网上还有其他可行的解决方案,但以下代码是按照我的风格编写的,我希望能对其进行调整)
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
解决方案
就一行,去掉第二个hashSet.discard(str[start])
你不想从集合里去掉这个字符,你只需要增加start,就是你刚刚遇到的那个字符。
推荐阅读
- python-3.x - 解包 4 字节的类会导致解包错误
- php - 在我的每个产品中创建新元框后,如何将值存储在数据库中?如何使用函数正确更改这些值?
- javascript - 如何修改 imgViewer jquery 插件以在滚动时缩放到光标
- javascript - Laravel - Vue:未知组件页脚-div
- python - 在 tkinter 的孩子的孩子中打包和网格
- php - 为什么树枝会自动显示自身
- react-native - React-Native:如果 MobX @observable 变量是临时的并且有过期时间?
- osmnx - 添加颜色渐变图例以可视化节点中心性
- docker - 用于 docker 容器的谷歌云运行以及作为谷歌云存储桶的共享文件夹
- ios - Lyft SDK DeepLinking 未预先填写接送地点