首页 > 其他分享 >LCR 016. 无重复字符的最长子串(中)

LCR 016. 无重复字符的最长子串(中)

时间:2024-03-14 12:55:24浏览次数:27  
标签:子串 字符 LCR 示例 重复 016 滑动 窗口

目录

题目

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

示例 1:

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

示例 2:

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

示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

示例 4:

输入: s = ""
输出: 0

题解:滑动窗口

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        window={}## 存储滑动窗口中各个字符的出现次数
        left=0# 滑动窗口的左指针
        right=0# 滑动窗口的右指针
        cnt=0#存储结果
        while right<len(s):
            c=s[right] # 当前字符
            right+=1# 右指针右移
            window.setdefault(c, 0)#访问不存在的键时自动创建并将值设置为 0
            window[c]+=1# 更新滑动窗口中当前字符的出现次数
            while(window[c]>1):#当滑动窗口中的字母出现次数大于1时说明存在重复字符
                d=s[left]# 将要移出窗口的字符
                left+=1# 左指针右移
                window[d]-=1# 更新滑动窗口中移出字符的出现次数
            cnt=max(cnt,right-left)#更新答案:收缩窗口完后保证了窗口中没有重复元素
        return cnt

标签:子串,字符,LCR,示例,重复,016,滑动,窗口
From: https://www.cnblogs.com/lushuang55/p/18072468

相关文章

  • LCR 159. 库存管理 IIIc
    经典快排/***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/intdivide(int*a,inthead,inttail){intt=a[head];while(head<tail){while(head<tail&&a[tail]>t)tail--;if(head<tail)......
  • 2016-2017西安澳鹏用户(会员)营销顾问-案例
    2016年9月12日下午第一次去萧山机场,也是人生第一次坐飞机,我记得是晚上里11点多到西安咸阳机场,当时的末班机场大巴没有了,已经不记得当时是怎么去的酒店了。和澳鹏的缘分还要向前追溯,2015年11月份的时候他们的人事当时联系到了我,想挖我但是西安实在太远了,所以当时就婉拒了,2016年8月......
  • 76. 最小覆盖子串c
    booljudge(int*temps,int*tempt){for(inti=0;i<200;i++){if(temps[i]<tempt[i])returnfalse;}returntrue;}char*minWindow(char*s,char*t){intns=strlen(s),nt=strlen(t);\char*array1=(char*)malloc(sizeof(char)......
  • LCR 183. 望远镜中最高的海拔(双端队列)
    科技馆内有一台虚拟观景望远镜,它可以用来观测特定纬度地区的地形情况。该纬度的海拔数据记于数组 heights ,其中 heights[i] 表示对应位置的海拔高度。请找出并返回望远镜视野范围 limit 内,可以观测到的最高海拔值。示例1:输入:heights=[14,2,27,-5,28,13,39],limit=......
  • [LeetCode][LCR174] 寻找二叉搜索树中的目标节点
    题目LCR174.寻找二叉搜索树中的目标节点某公司组织架构以二叉搜索树形式记录,节点值为处于该职位的员工编号。请返回第cnt大的员工编号。示例1:输入:root=[7,3,9,1,5],cnt=27/\39/\15输出:7示例2:输......
  • 给定字符串,输出符合要求的子串
    给定字符串,输出出现次数>3的字符串。实例:输入:"kouredgameredokwhogameredkaraokeyukarikouredrednanikoucankoukouongakugamegame"输出:redgamekou代码:importoperatorinput_str="kouredgameredokwhogameredkaraokeyukarikouredredn......
  • 洛谷题单指南-线性表-P2058 [NOIP2016 普及组] 海港
    原题链接:https://www.luogu.com.cn/problem/P2058题意解读:计算24小时时间窗口内不同国家的数量,是队列的典型应用。解题思路:本题需要用到两个关键的数据结构:队列、数组队列用来保存24小时内到达的船的时间,数组用来保存24小时内每个国家有多少人每到一只船,需要把时间放入队列,如......
  • 76. 最小覆盖子串(难)
    目录题目滑动窗口题目给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。注意:对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。如果s中存在这样的子串,我......
  • leetcode 528/ LCR 071 按权重随机选择
    leetcode528/LCR071按权重随机选择528.按权重随机选择LCR071.按权重随机选择题目描述给定一个正整数数组w,其中w[i]代表下标i的权重(下标从0开始),请写一个函数pickIndex,它可以随机地获取下标i,选取下标i的概率与w[i]成正比。例如,对于w=[1,3],挑选下标0......
  • Sqlite3之左子串,右子串,中间串subStr函数(14)
    右子串  subStr('一二三四五',-4)selectsubStr('一二三四五',-4) 左子串  substr('一二三四五',1,3) 中串,比如取出三四  selectsubStr('一二三四五',3,2) ......