python刷LeetCode:3.无重复字符的最长子串
2024-10-08 17:08:03
难度等级:中等
题目描述:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
1、利用字典 键值对的特点,可以存字符和其下标
2、遍历字符串,不断更新起始下标,并更新最长长度。
解题代码:
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
cache = {}
longest = 0
start = 0
for i,v in enumerate(s):
if v in cache:
start = max(start, cache[v]+1)
cache[v] = i
longest = max(longest, i-start+1)
return longest
最新文章
- c#与.net的简介
- Java调优之jvm和线程的内存分析
- highcharts 饼图显示数据比例如何保留二位小数
- top每个参数的意义
- linux服务器上的php代码通过nginx发布,解决pathinfo模式问题
- 手机时间选择插件 Jquery
- TFTP:简单文本传输协议,BOOTP:引导程序协议
- linux平台很nice的工具
- [NOIP2001提高组]数的划分
- mysql - Truncated incorrect DOUBLE value: 'undefined'
- python两段多线程的例子
- debian shell脚本关联
- pointer-events: none 的两个应用场景
- android不知不觉偷拍他人功能实现(手机关闭依然拍照)【申明:来源于网络】
- vagrant up报错 Warning: Authentication failure. Retrying...解决方案
- vivado自动化tcl实现(更新中)
- U3D学习11——nav导航和动画
- 关于oracle的锁表解决session marked for kill
- django2 xadmin pip list
- PageRank学习