首页 > 其他分享 >76. 最小覆盖子串

76. 最小覆盖子串

时间:2024-09-14 23:03:35浏览次数:11  
标签:子串 right return string 最小 tchar 76 tstr left

跟着别人的代码履了一遍,明天自己再重写遍。

class Solution {
public:
    map<char, int> tstr, sstr;

    bool isContained(){
        for(auto tchar : tstr){
            if(tchar.second > sstr[tchar.first]) return false;
        }
        return true;
    }

    string minWindow(string s, string t) {
        int n1 = s.size(), n2 = t.size();
        if(n1 < n2) return string("");
        int minLength = INT_MAX;
        int ansL = -1;
        for(char tchar : t){
            ++tstr[tchar];
        }
        int left = 0, right = 0;
        for(; right < n1; ++right){
            ++sstr[s[right]];
            if(tstr.find(s[right]) != tstr.end()){
                while(isContained() && left <= right){
                    if(minLength > right - left + 1){
                        ansL = left;
                        minLength = right - left + 1;
                    }
                    --sstr[s[left++]];
                }
            }
        }
        if(ansL == -1) return string("");
        return s.substr(ansL, minLength);
    }
};

标签:子串,right,return,string,最小,tchar,76,tstr,left
From: https://www.cnblogs.com/llllmz/p/18414812

相关文章

  • 算法工程师重生之第二天(长度最小的子数组 螺旋矩阵II 区间和 开发商购买土地 总结 )
    参考文献代码随想录一、长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl,numsl+1,...,numsr-1,numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示......
  • 滑动窗口算法—最小覆盖子串
    题目         ”最小覆盖子串“问题,难度为Hard,题目如下:        给你两个字符串S和T,请你在S中找到包含T中全部字母的最短子串。如果S中没有这样一个子串,则算法返回空串,如果存在这样一个子串,则可以认为答案是唯一的。    比如输入S="ADB......
  • 最小生成树之 Prim 算法学习笔记
    最小生成树之Prim算法学习笔记emm...在一通瞎搞奋战之后,prim被我收入囊中!\(prim\)的思路其实非常简单,和\(dij\)有一丝相似之处,可能会搞混设最小生成树上的集合为\(S\),所有点一开始到\(S\)的距离都是\(+\infty\)从任意一个点开始,将其放入\(S\),然后更新与这个点相邻......
  • LeetCode76. 最小覆盖子串(2024秋季每日一题 14)
    给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串“”。注意:对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。如果s中存在这样的子串,我们保证它是唯一的答案。示例1......
  • RM1135、RM1135T量产修复成功,RTS5735DL量产工具操作教程,RTS5765DL、RTS5772DL开卡大致
    自己的固态坏了,本来打算找数据恢复公司恢复数据的,问了一下,大约需要上千块钱,算了,自己的数据还没这么值钱,于是就直接开卡了。这里把我自己研究的开卡方法分享给大家,注意开卡后硬盘数据会完全被擦除,不能恢复,所以有重要数据的话要提前备份!不好好看提示出了问题不要找我。开卡前必须准备......
  • 数据结构与算法-求数的最小深度是多少?
    给定一颗二叉树的头节点head求以head为头的树中,最小深度是多少?publicclassMinHeight{publicstaticclassTreeNode{publicintval;publicTreeNodeleft;publicTreeNoderight;publicTreeNode(intx){val=x;......
  • 基于vue框架的宠物领养系统l3a76(程序+源码+数据库+调试部署+开发环境)系统界面在最后面
    系统程序文件列表项目功能:用户,宠物信息,宠物领养,宠物品种,团队信息,入团申请,团队活动开题报告内容基于Vue框架的宠物领养系统开题报告一、引言随着宠物文化的普及和人们对宠物情感的日益加深,宠物领养已成为社会关注的热点之一。然而,传统的宠物领养方式存在信息不对称......
  • 【LeetCode Hot 100】3. 无重复字符的最长子串
    题目描述本题我最开始的想法就是使用双指针与滑动窗口,滑动过程中维护一个集合,集合内保存滑动窗口内部的所有字符,右边的指针每指向一个新的元素,就判断该元素(字符)是否在集合内,如果已经存在,就说明此时将要出现重复字符,以及无重复字符的子串已经达到了最长的长度,之后我们需要移动左边......
  • 代码随想录算法训练营,9月14日 | 530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数,23
    530.二叉搜索树的最小绝对差题目链接:530.二叉搜索树的最小绝对差文档讲解︰代码随想录(programmercarl.com)视频讲解︰二叉搜索树的最小绝对差日期:2024-09-14想法:好好利用二叉搜索树中序遍历是有序的性质,设置一个节点表示前一个结点就能很方便的计算差值了Java代码如下:classSo......
  • Django的IT人才招聘网站管理系统的设计与实现-附源码03763
    摘   要随着信息技术行业的迅速发展,企业对于高素质的IT人才的需求日益增长。为了满足企业招聘需求和提供更好的求职体验,开发一个高效、可靠的招聘网站管理系统变得尤为重要。论文将首先介绍Django框架的特点和优势,包括其灵活性、可扩展性和安全性等方面。然后,我们将详细......