leetcode 最小覆蓋子串(雙指標)

2021-10-05 22:41:38 字數 606 閱讀 9323

76. 最小覆蓋子串

給你乙個字串 s、乙個字串 t,請在字串 s 裡面找出:包含 t 所有字元的最小子串。

示例:

輸入: s= "adobecodebanc",t= "abc"輸出:"banc"
說明:

解題思路:

這題可以使用雙指標解決,有點類似於找最長公共串。我們可以用左指標lf,右指標rg。我們不斷拓展右指標,直到[lf,rg]的串滿足要求,我們認為可以用lf指標往右走,直到[lf,rg]串不滿足要求。然後我們重複上面的步驟拓展右指標rg.

注意,這裡我們需要用map來做記錄,降低複雜度。

class solution 

tmpm[s[lf]]--;

if(mm.count(s[lf]) && tmpm[s[lf]]lf++;

}rg++;

}if(ans == 1e9)return "";

return s.substr(idxl,ans);

}};

LeetCode 最小覆蓋子串

q 給你乙個字串 s 乙個字串 t,請在字串 s 裡面找出 包含 t 所有字母的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 說明 如果 s 中不存這樣的子串,則返回空字串 如果 s 中存在這樣的子串,我們保證它是唯一的答案。a 引用 labuladong的演算法...

最小覆蓋子串

給你乙個字串 s 乙個字串 t,請在字串 s 裡面找出 包含 t 所有字母的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 說明 如果 s 中不存這樣的子串,則返回空字串 如果 s 中存在這樣的子串,我們保證它是唯一的答案。滑動視窗。設定left,right兩個游標...

最小覆蓋子串

描述 給你乙個字串 s 乙個字串 t,請在字串 s 裡面找出 包含 t 所有字母的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 說明 如果 s 中不存這樣的子串,則返回空字串 如果 s 中存在這樣的子串,我們保證它是唯一的答案。實現 class solution ...