题目地址:力扣
题目:
给你一个字符串 s
、一个字符串 t
。返回 s
中涵盖 t
所有字符的最小子串。如果 s
中不存在涵盖 t
所有字符的子串,则返回空字符串 ""
。
注意:
- 对于
t
中重复字符,我们寻找的子字符串中该字符数量必须不少于t
中该字符数量。 - 如果
s
中存在这样的子串,我们保证它是唯一的答案。
示例 1:
输入:s = "ADOBECODEBANC", t = "ABC" 输出:"BANC"
思路:
题目难度虽然写的是困难,但是如果能想到滑动窗口则很容易想到求解方法。
主要思想如下几步:
1、当窗口内的子串不能涵盖t的所有字符则right向右移动添加新的字母直到窗口内的字母可以涵盖所有t的字符。
2、窗口内的字符涵盖t所有子串时窗口内可能会有大量的重复字符和不需要的字符,left指针向右移动去除多余的字符直到窗口无法满足要求
3、重复1,2步骤直到遍历完字符串s
图形步骤如下: