LeetCode 3.无重复字符的最长字串(滑动窗口)
题目描述
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:
输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:
输入: “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。
思路
详见链接
代码
class Solution():def lengthOfLongestSubstring(self,s:str) -> int:n =len(s)memo = set()max_len = 0cur_len = 0left = 0for i in range(n):cur_len += 1while (s[i] in memo):memo.remove(s[left])left += 1cur_len -= 1memo.add(s[i])max_len = max(max_len,cur_len)return max_len
test = Solution()
test.lengthOfLongestSubstring("abcabcbb")
效果
LeetCode 3.无重复字符的最长字串(滑动窗口)相关推荐
- [剑指offer]面试题第[48]题[Leetcode][JAVA][第3题][无重复字符的最长字串][滑动窗口][HashSet/Map]
[问题描述][第3题][无重复字符的最长字串] 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度.示例 1:输入: "abcabcbb" 输出: 3 解释: 因为无重 ...
- python leetcode_python实现leetcode中无重复字符的最长字串
无重复字符的最长字串是一道经典的额字符串处理算法的题目,日常编程过程中,处理字符串是很多见的.用Python来实现leetcode这道算法题,这题会涉及到一个概念"滑动窗口"的概 ...
- 【LeetCode】无重复字符的最长子串【滑动窗口法】
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...
- LeetCode 3. 无重复字符的最长子串(滑动窗口+哈希)
1. 题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 " ...
- php无重复字符的最长子串,无重复字符的最长字串问题
leetcode3:无重复字符的最长字串问题 问题描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释 ...
- LeetCode中等题之无重复字符的最长字串
题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &q ...
- leetcode刷题:1.无重复字符的最长字串
题目: 方法一: 首先我们可以想到暴力解法,就是 ·逐个生成字符串 ·看他受否含有重复字符 如下代码暴力法: int LenOfUniqueStr(char* Start) {int Validity ...
- 无重复字符的最长子串_滑动窗口
思路: 这道题主要用到思路是:滑动窗口. 其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求.所以,我 ...
- 滑动窗口1——无重复字符的最长字串
滑动窗口本质是一个队列,输入进入这个窗口(队列),当不满足条件时,移动这个队列: 如何移动,只需要将左边的元素移除即可,直到满足条件. import java.util.HashSet; import ...
最新文章
- @Transcational特性
- 杜克大学计算机硕士要几年,2017杜克大学春季不招计算机专业的硕士?
- ireport 循环_ireport5.6.0分组显示
- dedecms采集功能扩展
- 图解linux32位平台下进程线程长什么样子
- nvidia TX2 CUDA yolov5环境搭建
- STM32出现HardFault故障的解决方法
- java 数组对象属性数组_Java中数组的特性
- Java SE 基础:继承、封装、多态、fianl、static、abstract
- FPM打包工具 可以把源码包制定为rpm包 是自动化部署的环节
- java中super和this_Java中this和super的用法总结
- java8实战教程,[JAVA] 汪大神Java8新特性及实战视频教程完整版
- linux 安装核显驱动程序,在Ubuntu系统上安装英特尔核显驱动安装器的方法
- printf()函数输出数据格式汇总
- 分享一下自己开发 kindle 电子书下载助手
- turtle画分形树
- java大文件pdf水印_java – 如何扩展PDF的页面大小以添加水印?
- -克服不良习惯读后感
- 如何混淆JavaWeb代码
- 微信营销解密:移动互联网时代的营销革命
热门文章
- 页面前端的水有多深?再议页面开发
- 【数据结构笔记29】最小生成树问题:Prim算法与Kruskal算法
- 命名空间“System.Web”中不存在类型或命名空间名称“Optimization”解决方法
- 自己总结一下wpf image source 绑定的几种方式
- OpenCart如何添加货币
- html类名定义规则_好程序员分享Java语言中的标识符规则
- Apache Qpid:一个AMQP的开源实现
- oracle中lag()函数和lead()函数的用法(图文)
- php中系统函数的特征,老鸟需要知道的一些php系统类函数
- Specified key was too long; max key length is 767 bytes解决方案