76 最小覆蓋子串

2021-10-01 13:55:45 字數 1004 閱讀 6133

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

示例:輸入: s = "adobecodebanc", t = "abc"

輸出: "banc"

說明:如果 s 中不存這樣的子串,則返回空字串 ""。

如果 s 中存在這樣的子串,我們保證它是唯一的答案。

class solution ;

int map_s[max_array_len] = ;

vectorvec_t;

for(int i = 0;i < t.length();i++)

map_t[t[i]]++;

for(int i = 0;i < max_array_len;i++)

if(map_t[i] > 0)

vec_t.push_back(i);

int window_begin = 0;

string res;

for(int i = 0;i < s.length();i++)

map_s[s[i]]++;

while(window_begin < i)

char begin_ch = s[window_begin];

if(map_t[begin_ch] == 0)

window_begin++;

else if(map_s[begin_ch] > map_t[begin_ch])

map_s[begin_ch]--;

window_begin++;

else

break;

if(is_window_ok(map_s,map_t,vec_t))

int new_window_len = i - window_begin + 1;

if(res == "" || res.length() > new_window_len)

res = s.substr(window_begin,new_window_len);

return res;

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 說明 滑動視窗解法。hashmap方式 param s param t return public static string minwind...

76 最小覆蓋子串

給你乙個字串 s 乙個字串 t,請在字串 s 裡面找出 包含 t 所有字元的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 說明 如果 s 中不存這樣的子串,則返回空字串 如果 s 中存在這樣的子串,我們保證它是唯一的答案。使用滑動視窗的思想,我們可以用乙個map來...