給你乙個字串 s、乙個字串 t,請在字串 s 裡面找出:包含 t 所有字元的最小子串。
示例:輸入: s = 「adobecodebanc」, t = 「abc」
輸出: 「banc」
說明:如果 s 中不存這樣的子串,則返回空字串 「」。
如果 s 中存在這樣的子串,我們保證它是唯一的答案。
使用滑動視窗的思想,我們可以用乙個map來儲存t字串的字元。然後用乙個map來儲存視窗裡的字元
定義視窗的左右指標left和right,初始化為0; 首先我們先滑動右視窗,左視窗不動,右移右視窗直到視窗中有滿足條件的字串。記錄視窗開始位置以及視窗長度,然後右移左視窗,直到視窗不滿足條件,根據大小跟新視窗開始位置以及長度,然後再右移右邊視窗,如此迴圈 知道右視窗到底s字串的終點。
跟具體的思路可以看:滑動視窗
class
solution
//判斷左視窗是否要收縮
while
(valid == need.
size()
)char d = s[left]
;//將要移出視窗的字元
left++
;//左視窗右移
if(need.
count
(d))}}
return len == int_max ?
"": s.
substr
(start, len);}
};
76 最小覆蓋子串
題目 給你乙個字串s 乙個字串t,請在字串s裡面找出 包含t所有字母的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 方法一 自己寫的,但是leetcode上超時 defminwindow s,t m 0 all in false iflen t 0or len s...
76 最小覆蓋子串
給你乙個字串 s 乙個字串 t,請在字串 s 裡面找出 包含 t 所有字母的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 說明 如果 s 中不存這樣的子串,則返回空字串 如果 s 中存在這樣的子串,我們保證它是唯一的答案。class solution int ma...
76最小覆蓋子串
給你乙個字串 s 乙個字串 t,請在字串 s 裡面找出 包含 t 所有字母的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 說明 滑動視窗解法。hashmap方式 param s param t return public static string minwind...