无重复字符的最长子串

无重复字符的最长子串,第1张

概述原文链接:https://www.cnblogs.com/NFii/p/11530379.html 思路 类似于推箱子游戏, 无重复字符的最长子串就是一个大的箱子, 遍历字符串,每次取一个字符推进去, 如果发现箱子里面已经有了重复的字符, 就开始推旧字符出箱子, 直到箱子无与新字符重复的字符. 图像解释 以字符串"AAB"举列 被推出来的字符 最长无重复字符"箱子" 待处理字符串 无 取第一个字符

原文链接:https://www.cnblogs.com/NFii/p/11530379.HTML

思路

类似于推箱子游戏,无重复字符的最长子串就是一个大的箱子,遍历字符串,每次取一个字符推进去,如果发现箱子里面已经有了重复的字符,就开始推旧字符出箱子,直到箱子无与新字符重复的字符.

图像解释

以字符串"AAB"举列

被推出来的字符 最长无重复字符"箱子" 待处理字符串
取第一个字符A进箱子 AB在外面
第一个字符的A被推出来了 取第二个字符A进箱子 B在外面
第一个字符的A被推出来了 留在箱子里的A同时取B进箱子 无剩余字符
代码
class Solution: def lengthOfLongestSubstring(self,s: str) -> int: # 最长无重复字符串的"箱子" st = ‘‘ # 最大长度 m = 0 for i in s: if i not in st: st += i else: # 将旧的推出箱子,同时存储前一次无重复的长度 m = max(m,len(st)) if len(st) != 1: st = st[st.find(i) + 1:] + i return max(m,len(st))
缺陷

运行速度太慢了,占内存过多,有待改进

总结

以上是内存溢出为你收集整理的无重复字符的最长子串全部内容,希望文章能够帮你解决无重复字符的最长子串所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1032259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存