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

目录

1 问题

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

示例 1:

输入: s = "abcabcbb"

输出: 3

解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: s = "bbbbb"

输出: 1

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

示例 3:

输入: s = "pwwkew"

输出: 3

解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。

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

2 答案

我的不对

python 复制代码
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        list = []
        l = 0

        for i in range(len(s)):
            if s[i] in list:

                list = []
                list.append(s[i])
            else:
                list.append(s[i])
                if len(list) > l:
                    l = len(list)
            
        return l

输入

python 复制代码
s =
"dvdf"

输出

python 复制代码
2

预期结果

python 复制代码
3

正确答案

python 复制代码
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:

        max_len, hashmap = 0, {}  # hashmap 用于存放字符,去重

        start = 0
        for end in range(len(s)):

            hashmap[s[end]] = hashmap.get(s[end], 0) + 1
            if len(hashmap) == end - start + 1: # 考察第0个元素时,窗口大小实际是 end - start + 1
                max_len = max(max_len, end - start + 1)  # 更新最大值
            

            while end - start + 1 > len(hashmap):  # 遍历删除前面的重复值
                head = s[start]
                hashmap[head] -= 1
                if hashmap[head] == 0:
                    del hashmap[head]
                start += 1

        return max_len

3 知识点

3.1哈希表

类似于python中的字典。也叫做散列表。是根据关键码值(Key Value)直接进行访问的数据结构。

哈希表通过「键 key 」和「映射函数 Hash(key) 」计算出对应的「值 value」,把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做「哈希函数(散列函数)」,存放记录的数组叫做「哈希表(散列表)」。

https://blog.csdn.net/zy_dreamer/article/details/131036258

3.2滑动窗口

是双指针算法的一种,基本思路为维护一个窗口,然后从前往后遍历元素进行运算。

https://blog.csdn.net/qq_54850598/article/details/127863026

相关推荐
晨曦夜月5 分钟前
map与unordered_map区别
算法·哈希算法
图码29 分钟前
如何用多种方法判断字符串是否为回文?
开发语言·数据结构·c++·算法·阿里云·线性回归·数字雕刻
handler0138 分钟前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
minglie144 分钟前
实数列的常用递推模式
算法
代码小书生1 小时前
math,一个基础的 Python 库!
人工智能·python·算法
AI科技星1 小时前
全域数学·数术本源·高维代数卷(72分册)【乖乖数学】
人工智能·算法·数学建模·数据挖掘·量子计算
生成论实验室1 小时前
《事件关系阴阳博弈动力学:识势应势之道》第一篇:生成正在发生——从《即事经》到事件-关系网络
人工智能·科技·算法·架构·创业创新
漂流瓶jz1 小时前
UVA-1152 和为0的4个值 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·二分查找·题解·aoapc·算法竞赛入门经典·uva
leoufung1 小时前
LeetCode 76:Minimum Window Substring 题解与滑动窗口思维详解
算法·leetcode·职场和发展
小O的算法实验室2 小时前
2026年IEEE TETCI,山区环境下基于双种群进化的协同无人机巡逻任务协同优化,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进