当前位置: 首页 > wzjs >正文

深圳南山网站建设工作室个人主页网站设计代码

深圳南山网站建设工作室,个人主页网站设计代码,wordpress yarpp,网站建设 互诺科技1、题目描述: 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须…

1、题目描述:

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。

注意:

  • 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。
  • 如果 s 中存在这样的子串,我们保证它是唯一的答案。

示例 1:

输入:s = "ADOBECODEBANC", t = "ABC"
输出:"BANC"
解释:最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。

示例 2:

输入:s = "a", t = "a"
输出:"a"
解释:整个字符串 s 是最小覆盖子串。

示例 3:

输入: s = "a", t = "aa"
输出: ""
解释: t 中两个字符 'a' 均应包含在 s 的子串中,
因此没有符合条件的子字符串,返回空字符串。

提示:

  • m == s.length
  • n == t.length
  • 1 <= m, n <= 105
  • s 和 t 由英文字母组成

2、代码:

class Solution {
public:string minWindow(string s, string t) {// 如果字符串 s 或 t 为空,或者 s 的长度小于 t 的长度,直接返回空字符串if (s.empty() || t.empty() || s.size() < t.size()) {return "";}// need 哈希表:记录字符串 t 中每个字符的需求个数unordered_map<char, int> need;// window 哈希表:记录当前窗口中每个字符的数量unordered_map<char, int> window;// 初始化 need 哈希表,统计 t 中每个字符的出现次数for (char c : t) {++need[c];}// 定义滑动窗口的左右边界int left = 0, right = 0;// 记录最小覆盖子串的起始位置和长度int start = 0, len = INT_MAX;// valid 变量:表示窗口中满足 need 条件的字符个数int valid = 0;// 开始滑动窗口while (right < s.size()) {// c 是将要移入窗口的字符// 右边界向右扩展char c = s[right++];// 更新窗口内的数据if (need.count(c)) {  // 如果字符 c 在 need 中(即它是 t 中的字符)++window[c];  // 将 c 加入窗口,并更新其计数if (window[c] == need[c]) {  // 如果窗口中 c 的数量达到了 need 中的需求++valid;  // 满足条件的字符个数加一}}// 判断左侧窗口是否需要收缩while (valid == need.size()) {  // 当窗口中的字符已经满足了 t 中所有字符的需求时// 更新最小覆盖子串if (right - left < len) {  // 如果当前窗口比之前记录的最小窗口更小start = left;  // 更新最小窗口的起始位置len = right - left;  // 更新最小窗口的长度}// d 是将要移出窗口的字符// 左边界向右收缩char d = s[left++];// 更新窗口内的数据if (need.count(d)) {  // 如果字符 d 在 need 中if (window[d] == need[d]) {  // 如果窗口中 d 的数量刚好等于 need 中的需求--valid;  // 满足条件的字符个数减一}--window[d];  // 将 d 移出窗口,并更新其计数}}}// 返回结果// 如果 len 仍然是 INT_MAX,说明没有找到符合条件的子串,返回空字符串// 否则,返回从 start 开始长度为 len 的子串return len == INT_MAX ? "" : s.substr(start, len);}
};

3、解题思路:

1. 这是一个滑动窗口问题,需要 left 和 right 指针的滑动去遍历 s 字符串,首先创建2个无序的map(相当于哈希表,访问效率更高),一个need用来存储需要包含的字符种类及其数量(也就是 t 字符串),一个window用来存储 left 和 right 指针截取的 s 字符串中,所包含的字符种类及其数量。

2. 开始循环,循环条件是 right < s.size(),每次循环之前,都会进行 char c = s[right++] 操作,也就是提取 right 当前指向的 s 字符串的字符,并且 right++。

3. 开始扩充window,当 need 里面有 c 时,++window[c] ,如果 need[c] == window[c] 时,代表window 已经包含 need 里面的所有 c 字符了,那么 ++valid,也就是说,某个字符,已经完全满足。

4. 扩从不一定结束,但可以尝试开始收缩window,当valid == need.size()时,开始循环,收缩窗口,当right - left < len 时(哈希表是从 0 开始的,不需要 right - left + 1),更新start 、len的值,然后 char d = s [left++],当 need.count(d)  时,--window[d],当 window[d] == need[d]时,也就是不需要再收缩了,--valid,退出循环


文章转载自:

http://uDsUiYaW.zmpqt.cn
http://ECBU0gIM.zmpqt.cn
http://iinohsVP.zmpqt.cn
http://nHW3jy4O.zmpqt.cn
http://S0vs0y5W.zmpqt.cn
http://OPz8u14u.zmpqt.cn
http://TerQgtvy.zmpqt.cn
http://cEmSHSma.zmpqt.cn
http://DK7JZx7f.zmpqt.cn
http://y4iG0Z8A.zmpqt.cn
http://yAuXqaYo.zmpqt.cn
http://zFnLVFVn.zmpqt.cn
http://Se6oWyTX.zmpqt.cn
http://fepjrg5s.zmpqt.cn
http://QoyC5GdA.zmpqt.cn
http://dRm8wRcv.zmpqt.cn
http://tVc6CbEY.zmpqt.cn
http://E1P2nM19.zmpqt.cn
http://CbsuJFRC.zmpqt.cn
http://l8LuVUlg.zmpqt.cn
http://RmYYw118.zmpqt.cn
http://IZFHBn0r.zmpqt.cn
http://5K01mgRu.zmpqt.cn
http://6jziRLvo.zmpqt.cn
http://I0eD3oim.zmpqt.cn
http://2etwcgiu.zmpqt.cn
http://j3AyqO1S.zmpqt.cn
http://o3sIa0yl.zmpqt.cn
http://NEPirN8n.zmpqt.cn
http://ABRD79ft.zmpqt.cn
http://www.dtcms.com/wzjs/632029.html

相关文章:

  • 网站策划方案实例新闻国际最新消息
  • 网站建设全网推广学做古装网站
  • 网站建设费 科研 类apmserve设置多个网站
  • 汕头自助建站模板长春工程建设信息网站
  • 北京 网站代运营做游戏模型参考的网站
  • 公司建设网站的报告书网站建设怎样才能吸引顾客
  • 广告推广营销网站企业如何打造品牌
  • 虚拟机 网站建设三网合一网站报价
  • 做地区招聘网站网站建设及维护干什么的
  • 南昌网站建设机构无锡网站建设咨询
  • 网站注册流程google ads 推广
  • 颇有名气的网站建设专家好网站开发策划要求
  • 网站免费个人空间申请o2o平台有哪些可以入驻
  • 做网站工作的怎么填职务网站首页优化模板
  • 南阳哪有做网站公司用dw做的网站能用吗
  • 网站建设需要域名photoshop官网
  • wordpress 重新安装公司网站建设推荐乐云seo
  • asp网站开发实训郑州注册公司流程及费用
  • 在网上做企业网站怎么做商务网站建设实训报告总结
  • 毕设做网站什么主题比较好贵阳白云区城乡建设局网站
  • 网站建设的七个流程步骤如何看出网站用dede做的
  • 网站建设公司品牌企业门户网站实现
  • 公司弄个网站多少钱手机网站页面尺寸
  • 台州哪家做企业网站比较好企点官网网址
  • 红安县城乡建设局官方网站做旅游业务的商业网站
  • 专门做二手手机的网站网站开发是什么
  • wordpress 免费字体seo短视频网页入口营销
  • 上海建网站价格分销商城网站开发
  • 有人知道做网站吗?人才招聘网站大全
  • 杭州网站建设企业在线股票交易网站开发