当前位置: 首页 > wzjs >正文

专业网站设计哪家好推荐友情链接

专业网站设计哪家好,推荐友情链接,wordpress 单栏 主题,企业网站开发用什么好给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”…

给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。

示例 1:
输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。

示例 2:
输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。

示例 3:
输入: s = “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。

请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。

提示:

0 <= s.length <= 5 * 104
s 由英文字母、数字、符号和空格组成

看到这个题目,我最先想到的是python中set(集合)是储存不重复元素的数据结构。但很快又发现了题目隐藏的心机:需要的是子串的长度,而不是子序列的长度,就像提示中说的,也就是说,我们还需要考虑“顺序”这一信息,而set是无序的。
费尽心机用set写了答案,费尽心机通过了三个测试用例,最后提交才发现还是有bug,于是放弃去看题解,发现大家都用滑动窗、双指针、哈希。
在这里插入图片描述
于是在参考了几个答案之后,有了这份答案:

class Solution(object):def lengthOfLongestSubstring(self, s):""":type s: str:rtype: int"""max_len = cur_len = left = 0check = set()for i in range(len(s)):cur_len += 1while s[i] in check:check.remove(s[left])left += 1cur_len -= 1if cur_len > max_len : max_len = cur_lencheck.add(s[i])return max_len

在代码的循环中一共有四个部分:
1.当前长度+1
2.判断重复元素,将集合中左边元素移除
3.判断最大长度和当前长度关系,储存最大长度。
4.在集合中添加新元素。

需要注意的是:这四部分的顺序十分重要。
1:这部分应该在循环的最开始执行。因为每次循环都代表尝试将一个新的字符加入子串,所以需要先假设这个字符是有效的,然后后续逻辑再判断是否需要调整。它是基于“乐观假设”的第一步,后续部分需要验证这个假设是否成立。如果发现有重复字符,后续逻辑会调整长度。
2:这部分必须紧跟在“当前长度+1”之后。因为一旦发现重复字符,就需要调整子串的左边界,同时更新当前长度。它依赖于“当前长度+1”部分的假设,因为只有在尝试加入新字符后,才可能发现重复。它会直接影响“当前长度”,因为移除左侧字符会导致子串长度减小。它为后续的“添加新元素”部分铺平道路,确保集合中没有重复字符。
3:这部分应该在“判断重复元素”之后执行。因为只有在确保当前子串没有重复字符后,才能确定当前长度是否有效。它依赖于“判断重复元素”部分的结果,因为只有在移除重复字符后,当前子串才是有效的。它是整个算法的核心目标,即找到最长的无重复子串。
4:这部分应该在“判断重复元素”之后执行。因为只有在移除重复字符后,才能安全地真正将当前字符加入集合。它同样依赖于“判断重复元素”部分的结果,因为只有在移除重复字符后,集合中才没有重复元素。它为下一次循环的“当前长度+1”部分提供基础,即集合中已经包含当前字符。

同时需要注意:
判断是否在集合内的,和加入的都是s[i](新元素),remove的是s[left](列头元素)


文章转载自:

http://xPdNULQc.htbsk.cn
http://KxlqQapu.htbsk.cn
http://qLAp2BHE.htbsk.cn
http://wPmSU5lW.htbsk.cn
http://FqLh2ShJ.htbsk.cn
http://THz6cwfv.htbsk.cn
http://9yIcY0Re.htbsk.cn
http://HNTwzTzT.htbsk.cn
http://X6AgTITd.htbsk.cn
http://l6B3LWNq.htbsk.cn
http://abZ9lgz9.htbsk.cn
http://l9nRWJAA.htbsk.cn
http://E5jsTzWE.htbsk.cn
http://p0X2a96Q.htbsk.cn
http://PLZIQaIv.htbsk.cn
http://rXz98sVF.htbsk.cn
http://2aFNUe3P.htbsk.cn
http://xQkmfKkg.htbsk.cn
http://dYctjXpM.htbsk.cn
http://NfHTecRs.htbsk.cn
http://aqYaIVMZ.htbsk.cn
http://CttoG1EA.htbsk.cn
http://ey5xE0P2.htbsk.cn
http://gA8lMbXi.htbsk.cn
http://gjaERPSL.htbsk.cn
http://3Qe9qOVC.htbsk.cn
http://Sxjv6wUQ.htbsk.cn
http://skeMrZPR.htbsk.cn
http://bOFVY4xH.htbsk.cn
http://6g77WNZ3.htbsk.cn
http://www.dtcms.com/wzjs/773322.html

相关文章:

  • 做网站需要备案吗2016年做水果行业专业网站
  • 网站怎么建设在哪里接单免费做图网站有哪些
  • 宁波工商注册咨询电话站长工具seo综合查询隐私查询导航
  • 湖南响应式网站哪家好莱芜双休女工招聘信息
  • 特殊教育学校网站建设方案深圳网站建设小江
  • 大型网站设计首页实例济南网站优化哪里做的好
  • 农业公司网站建设免费seo快速排名工具
  • 电脑网站建设服务器北京网站开发人员
  • 专业做网站优化价格展厅公司
  • 巴中学校网站建设佛山网站维护
  • 导航网站制作手机音乐制作软件
  • 游戏直播网站怎么做免费网站下载软件免费
  • windows优化大师好用吗免费的关键词优化工具
  • 网站换空间 seo买商标
  • 做网站怎样做全页面石家庄房产信息网查询系统
  • 淘宝购物网站官网和网站的区别
  • 网站做的好是不是影响就大网站规划文字说明
  • wordpress整站cdn做网站需要学的语言和软件
  • 做网站的公司在哪百度一下你就知道了主页
  • 360优化大师下载官网seo关键词找29火星软件
  • 邯郸专业做网站租好服务器咋做网站呢
  • php电影网站开发苏州专业高端网站建设公司哪家好
  • 富阳网站建设怎样益阳市网站建设科技
  • 河南省做网站的公司新建茶叶网站文章内容建设
  • 锡林郭勒盟建设工程造价信息管理网站xxx网站建设规划书
  • 个人做交通违章查询网站违法吗医院网站建设 不足
  • 普宁网站建设网站建设服务收费标准
  • 网站建设中提示页面全球网站排行榜
  • 学院网站建设目标昆明网站建设公司哪家便宜
  • 网站节点加速上海市建设局官方网站