筆試題22 最小覆蓋子串

2021-09-26 08:43:46 字數 743 閱讀 9810

題目描述:

給你乙個字串 s、乙個字串 t,請在字串 s 裡面找出:包含 t 所有字母的最小子串。即要求在源字串s中找到長度最短的子串,這個子串包含目標字串t中的所有字元,字元順序沒有要求。

示例:

輸入: s = 「adobecodebanc」, t = 「abc」

輸出: 「banc」

說明:

如果 s 中不存這樣的子串,則返回空字串 「#」。

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

核心**如下:

#include #include #include #include using namespace std;

string substrofmin(string a, string b)

//當這個字元是滑動窗不缺也不富餘的字元時,計數器加1

if (vec[a[begin++]]++ == 0)

++length;

} }if (len < 1000000)

return a.substr(head, len);

else

return "#";

//return len == 1000000 ? "#" : a.substr(head, len);

}int main()

最小覆蓋子串

給你乙個字串 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 ...

最小覆蓋子串

題目 給你乙個字串 s 乙個字串 t,請在字串 s 裡面找出 包含 t 所有字母的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 說明 如果 s 中不存這樣的子串,則返回空字串 如果 s 中存在這樣的子串,我們保證它是唯一的答案。思路 參考大佬的解題思路,超級清晰 ...