力扣刷题记录3

标明来源,题目及解题思路均来自:https://leetcode.cn/problems/longest-substring-without-repeating-characters/

题目:无重复字符的最长字串

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

python 复制代码
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        dic, res, i = {}, 0, -1
        for j in range(len(s)):
            if s[j] in dic:
                i = max(dic[s[j]], i) # 更新左指针 i
            dic[s[j]] = j # 哈希表记录
            res = max(res, j - i) # 更新结果
        return res

这个题考的是滑动窗口,核心是用哈希表记录字符最新位置。

我还写了一个直白点的做法:

python 复制代码
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        # 用集合存储当前窗口的字符
        window = set()
        left = 0  # 窗口左边界
        max_len = 0  # 记录最长长度
        
        for right in range(len(s)):
            # 如果当前字符已在窗口中,不断移动左边界直到移除重复字符
            while s[right] in window:
                window.remove(s[left])
                left += 1
            # 将当前字符加入窗口
            window.add(s[right])
            # 更新最长长度(当前窗口长度:right - left + 1)
            max_len = max(max_len, right - left + 1)
        
        return max_len

滑动窗口的知识点倒是没怎么为难我,所以我不写知识点。

好的,继续干下一篇。

相关推荐
随意起个昵称5 小时前
区间dp-基础题目1(石子合并)
算法·动态规划
吞下星星的少年·-·5 小时前
线段树模板
算法
段一凡-华北理工大学5 小时前
2026 高炉炼铁智能化技术全景与演进路径~系列文章11:演进路径与行业未来
大数据·网络·人工智能·算法·工业智能体·高炉炼铁智能化
凯瑟琳.奥古斯特5 小时前
高阶子查询题目精炼
开发语言·数据库·python·职场和发展·数据库开发
叶小鸡6 小时前
小鸡玩算法-力扣HOT100-多维动态规划
算法·leetcode·动态规划
星马梦缘6 小时前
aaaaa
数据结构·c++·算法
菜菜的顾清寒7 小时前
力扣HOT100(42)链表-随机链表的复制
算法·leetcode·链表
lqqjuly7 小时前
模型剪枝与稀疏化:理论、算法与可运行实现
人工智能·算法·剪枝
凯瑟琳.奥古斯特7 小时前
数据库原理选择题精选
数据库·python·职场和发展
逻辑君7 小时前
Foresight研究报告【20260011】
人工智能·线性代数·算法·矩阵