#4469. 最小覆盖子串

    ID: 4469 传统题 1000ms 256MiB 尝试: 20 已通过: 7 难度: 8 上传者: 标签>其他双指针扫描难度普及/提高-LeetCode双指针滑动窗口

最小覆盖子串

题目描述

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

注意:

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

输入格式

第一行,一个字符串表示 s,第二行一个字符串表示 t

输出格式

一个字符串表示答案。

样例

样例 1:

ADOBECODEBANC
ABC
BANC

解释:

最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。

样例 2:

a
a
a

解释:

整个字符串 s 是最小覆盖子串。

样例 3:

a
aa

解释:

t 中两个字符 'a' 均应包含在 s 的子串中, 因此没有符合条件的子字符串,返回空字符串。

提示:

  • m=s.length()m = s.length()
  • n=t.length()n = t.length()
  • 1<=m,n<=1051 <= m, n <= 10^5
  • st由英文字母组成s 和 t 由英文字母组成
}