首页 > 编程语言 >python-leetcode-最小覆盖子串

python-leetcode-最小覆盖子串

时间:2025-01-18 23:01:39浏览次数:3  
标签:子串 right min python len window need leetcode left

76. 最小覆盖子串 - 力扣(LeetCode)

class Solution:
    def minWindow(self, s: str, t: str) -> str:
        if not s or not t:
            return ""
        
        need = {}
        for c in t:
            need[c] = need.get(c, 0) + 1
        window = {}
        left = right = 0
        valid = 0  # 满足条件的字符数
        start = 0  # 最小子串的起始索引
        min_len = float('inf')  # 最小子串长度
        
        while right < len(s):
            c = s[right]
            right += 1
            
            # 更新窗口数据
            if c in need:
                window[c] = window.get(c, 0) + 1
                if window[c] == need[c]:
                    valid += 1
            
            # 尝试收缩窗口
            while valid == len(need):
                # 更新最小子串
                if right - left < min_len:
                    start = left
                    min_len = right - left
                    
                d = s[left]
                left += 1
                if d in need:
                    if window[d] == need[d]:
                        valid -= 1
                    window[d] -= 1
        
        return s[start:start + min_len] if min_len != float('inf') else ""

标签:子串,right,min,python,len,window,need,leetcode,left
From: https://blog.csdn.net/Lucy_wzw/article/details/145092421

相关文章

  • 用Python检查Android字符串文件通配符
    #!/usr/bin/envpython3importosimportsysfromdatetimeimportdatetime,timedeltaimportreimportxml.etree.ElementTreeasETiflen(sys.argv)<3:exit()print(datetime.now(),'start')timestamp=int(datetime.now().timestamp())en_t......
  • LeetCode:455.分饼干
    LeetCode:455.分饼干解题思路局部最优:既能满足孩子,还消耗最少。先将“较小的饼干”分给“胃囗最小”的孩子。解题步骤对饼干数组和胃口数组升序排序。遍历饼干数组,找到能满足第一个孩子的饼干。然后继续遍历饼干数组,找到满足第二、三、….、n个孩子的饼干。/***@param{numb......
  • 使用Python爬虫将抓取的数据保存到Excel文件
    在进行Python爬虫开发时,数据的存储是非常重要的一环。随着数据分析需求的不断增长,保存和管理大量的数据变得尤为重要。CSV(Comma-SeparatedValues)格式一直是一个常见的存储格式,但在许多应用场景下,Excel文件作为一种更直观、结构化的方式,具有更多的优势,尤其在数据分析与可视......
  • 使用MapReduce处理爬虫数据:Python与大数据分析的完美结合
    引言随着互联网信息量的爆炸式增长,爬虫技术被广泛应用于从网页上抓取海量数据。这些数据通常需要进一步处理和分析,以提取有价值的信息。然而,随着数据量的增大,传统的单机处理方式已无法满足需求。MapReduce作为一种流行的分布式计算模型,在大规模数据集的处理上发挥了巨大的......
  • 数据结构与算法之栈: LeetCode 71. 简化路径 (Ts版)
    简化路径https://leetcode.cn/problems/simplify-path/description/描述给你一个字符串path,表示指向某一文件或目录的Unix风格绝对路径(以‘/’开头),请你将其转化为更加简洁的规范路径在Unix风格的文件系统中规则如下一个点‘.’表示当前目录本身此外,两个......
  • Python 潮流周刊#86:Jupyter Notebook 智能编码助手(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。分享了12篇文章,12个开源项目,全文2000字。以下是本期摘要:......
  • python+django/flask的医疗就诊平台Java+nodejs+php-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • python+django/flask的北部湾地区助农平台Java+nodejs+php-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • 大数据毕业设计:Python电影市场数据分析+票房分析+预测分析 大数据对电影市场的预测分
    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌>......
  • leetcode198&213-打家劫舍1,2
    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜......