文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给定字符串 S and T,找出 S 中最短的(连续)子串 W ,使得 T 是 W 的 子序列 。

如果 S 中没有窗口可以包含 T 中的所有字符,返回空字符串 “”。
如果有不止一个最短长度的窗口,返回开始位置最靠左的那个。

示例 1:
输入:
S = "abcdebdde", T = "bde"
输出:"bcde"
解释:
"bcde" 是答案,因为它在相同长度的字符串 "bdde" 出现之前。
"deb" 不是一个更短的答案,因为在窗口中必须按顺序出现 T 中的元素。注:
所有输入的字符串都只包含小写字母。
S 长度的范围为 [1, 20000]。
T 长度的范围为 [1, 100]。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-window-subsequence
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:LeetCode 76. 最小覆盖子串(滑动窗口)

  • 先向右匹配,全部匹配了,再向左寻找最近的匹配点 x (可能较短)
  • 从x+1再循环上面步骤
class Solution {public:string minWindow(string S, string T) {int i = 0, j = 0, minlen = INT_MAX;int l = -1, r;while(i < S.size()){if(S[i] == T[j]){j++;if(j == T.size())//全部匹配了{r = i+1;j--;while(j >= 0){while(S[i] != T[j])//向左匹配i--;i--;j--;}i++,j++;if(r-i < minlen){minlen = r - i;l = i;}}}i++;}return l == -1 ? "" : S.substr(l,minlen);}
};

20 ms 8.4 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 727. 最小窗口子序列(滑动窗口)相关推荐

  1. LeetCode 76. 最小覆盖子串(滑动窗口)

    1. 题目 给你一个字符串 S.一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串. 示例: 输入: S = "ADOBECODEBANC", T = &quo ...

  2. tcp协议头窗口,滑动窗口,流控制,拥塞控制关系

    tcp协议头窗口,滑动窗口,流控制,拥塞控制关系 参考文章 TCP 的那些事儿(下) http://coolshell.cn/articles/11609.html tcp/ip详解--拥塞控制 &a ...

  3. Flink 滚动窗口、滑动窗口详解

    1 滚动窗口(Tumbling Windows) 滚动窗口有固定的大小,是一种对数据进行"均匀切片"的划分方式.窗口之间没有重叠,也不会有间隔,是"首尾相接"的 ...

  4. TCP/IP卷一:63---TCP基础之(ARQ和重传、分组窗口和滑动窗口、流量控制和拥塞控制、设置重传超时)

    一.前言 到目前为止,我们一直在讨论那些自身不包含可靠传递数据机制的协议 它们可能会使用一种像校验和或CRC这样的数学函数来检测接收到的有差错的数据,但是它们不尝试去纠正差错 对于IP和UDP,根本没 ...

  5. [Leetcode][第632题][JAVA][最小区间][堆][滑动窗口]

    [问题描述][困难] [解答思路] 1. 堆 复杂度 class Solution {public int[] smallestRange(List<List<Integer>> ...

  6. 【leetcode个人练习记录】 滑动窗口的问题

    1.从本质上来看 ,滑窗是双指针,一根指针指向左端点,一根指针指向右端点. 2.右指针移动是可以表示扩张窗口,左指针移动表示缩小窗口. 3.如果当前元素满足需求时,可以挪动右指针尝试更优解,并且更新需 ...

  7. leetcode刷题笔记-数组-滑动窗口

    一.滑动窗口的常见问题分析 问题 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, - ...

  8. LeetCode Longest Repeating Character Replacement(滑动窗口)

    问题:给出一个由大写字母构成的字符串,可以对字符串最多作k次操作,将一个字符转换为另外一个字符. 找出操作后最长的重复子串 思路:使用滑动窗口,及用一个长度为26的数组记录字符个数.初始时,窗口大小为 ...

  9. LeetCode算法题6:滑动窗口*

    文章目录 前言 一.无重复字符的最长子串 思路 1: 思路 2: 二.字符串的排列 思路 1: 思路 2: 思路 3: 思路 3 plus: 思路 3 plus plus: 思路 4: 思路 5: 总 ...

最新文章

  1. BootStrap 模态框禁用空白处点击关闭
  2. 华为机试第九题python
  3. 以太坊 智能合约 简介
  4. docker-ce私有仓库搭建
  5. php新建文件在指定目录下,PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台...
  6. JS 获取链接(url)参数以及锚链接(anchor)结合富ajax的应用(ajax前进/后退的问题)...
  7. xmlxml约束dtdxml解析器
  8. n160ii打印机查看ip地址_芯烨ip地址设定软件下载|
  9. rac san+oracle_Oracle RAC安装部署之规划(一)
  10. mysql把字段名批量改为大写_MySQL批量将表名或者列名大小写转换
  11. 现代通信原理6.1 常规调幅调制(AM)与抑制载波双边带(DSB-SC)调制
  12. dSYM文件的汇编分析
  13. html古诗竖版,古诗词竖版图片
  14. 一款强大的红队资产测绘工具
  15. lstm不收敛_LSTM学习笔记
  16. 远程移动测试平台对比分析
  17. 简述igp和egp_igp egp
  18. 苹果发布无线充新专利,苹果Find My技术成为近几年苹果的重要创新
  19. 百变小鹿机器人金鸡奖登场,成为首个走上红毯的机器人
  20. 协同过滤推荐算法及应用

热门文章

  1. 自动驾驶安全驾驶规则_自动驾驶知识科普 自动驾驶汽车的七大核心技术
  2. Python - Django - 中间件 process_exception
  3. flask开启调试的四种模式
  4. Day12-date time
  5. Linux:多进程、多线程服务器的实现解析(有图有代码有真相!!!)
  6. 获取Spring容器管理的Bean工具类
  7. 在vue.js引用图片的问题
  8. Vue-watch选项
  9. python 将一个字符list的列表扁平化成了一个list
  10. WPF 开源项目 【watcher】 守望者,一款监控,统计,分析你每天在自己电脑上究竟干了什么的软件...