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

力扣热题100_滑动窗口_3_无重复字符的最长子串

文章目录

  • 题目链接
  • 解题思路
  • 解题代码


题目链接

3. 无重复字符的最长子串

给定一个字符串 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 由英文字母、数字、符号和空格组成

解题思路

1.初始化变量start 为0、dic为字典、res为0
2.初始化变量为end,取值来自s的长度做for range循环遍历
2(1).判断end在s字符的索引的值是否在dic字段里,若在,start发生更新,start目前的值或end在s字符的索引的值在字典中作为键的值并+1,两者取其一最大值
2(2).接着,end在s字符的索引的值在字典发生更新,将当前end赋值过去
2(3).最后更新res的值,res当前的值及当前end的值-当前start的值+1,两者取其一最大值,循环遍历结束将其res返回

解题代码

class Solution:def lengthOfLongestSubstring(self, s: str) -> int:start = 0dic = {}res = 0for end in range(len(s)):if s[end] in dic:start = max(start, dic[s[end]] + 1)dic[s[end]] = endres = max(res, end - start + 1)return res
http://www.lryc.cn/news/300856.html

相关文章:

  • RM电控工程讲义
  • 论文阅读:《Deep Learning-Based Human Pose Estimation: A Survey》——Part 1:2D HPE
  • C语言——oj刷题——杨氏矩阵
  • C++ 50道面试题
  • 寒假学习记录14:JS字符串
  • 【数学建模】【2024年】【第40届】【MCM/ICM】【C题 网球运动中的“动量”】【解题思路】
  • 无人驾驶LQR控制算法 c++ 实现
  • Karnaugh map (卡诺图)
  • C# CAD 框选pdf输出
  • 【Linux】 Linux 小项目—— 进度条
  • Sora和Pika,RunwayMl,Stable Video对比!网友:Sora真王者,其他都是弟
  • Go内存优化与垃圾收集
  • 【Spring】Bean 的生命周期
  • 云计算基础-存储基础
  • 问题:人的安全知识和技能是天生的。() #媒体#知识分享#学习方法
  • 【数据分享】2001~2020年青藏高原植被净初级生产力数据集
  • 【Spring MVC篇】返回响应
  • 阿里云BGP多线精品EIP香港CN2线路低时延,价格贵
  • (08)Hive——Join连接、谓词下推
  • 创新技巧|迁移到 Google Analytics 4 时如何保存历史 Universal Analytics 数据
  • 一个小而实用的 Python 包 pangu,实现在中文和半宽字符(字母、数字和符号)之间自动插入空格
  • openJudge | 中位数 C语言
  • ctfshow-文件上传(web151-web161)
  • cudnn免登录下载
  • SQLyog安装配置(注册码)连接MySQL
  • java+SSM+mysql 开放式实验管理系统78512-计算机毕业设计项目选题推荐(免费领源码)
  • 代码随想录算法训练营第三十三天|1005.K次取反后最大化的数组和、134.加油站、135.分发糖果
  • 解决LeetCode编译器报错的技巧:正确处理位操作中的数据类型
  • 一周学会Django5 Python Web开发-Django5操作命令
  • 反转链表【基础算法精讲 06】