給你乙個字串 s、乙個字串 t 。請你設計一種演算法,可以在 o(n) 的時間複雜度內,從字串 s 裡面找出:包含 t該題利用滑動視窗與雜湊表方法。首先雜湊表要記錄t串中的字元出現數量,還要記錄視窗**現t字元的數量,視窗必須滿足t中的字元在視窗中的數量相同。所有字元的最小子串。
示例:輸入:s = 「adobecodebanc」, t = 「abc」 輸出:「banc」
如果 s 中不存這樣的子串,則返回空字串 「」。 如果 s 中存在這樣的子串,我們保證它是唯一的答案。
視窗的建立:頭指標begin 尾指標就是迴圈中的i。
頭指標後移的情況:
1.當前指向的字元沒有在t**現
2.當前指向的字元 在視窗中的數量 大於了t**現的數量
然後要檢查視窗中的出現t中的字元數量是否相同,如果相同並且長度小於之前的臨時字串就更新臨時字串
class
solution
}return
true;}
string minwindow
(string s, string t)
;//儲存當前滑動視窗**現字元的數量
int map_t[
128]=;
//儲存t串中字元數量
vector<
int>str;
//儲存t串出現了哪些字元
for(
int i=
0;isize()
;i++
)for
(int i=
0;i<
128;i++)}
int begin=0;
//頭指標
string res="";
for(
int i=
0;isize()
;i++
)else
if(map_s[ch]
>map_t[ch]
)//如果在視窗出現的字元數量大於在t串**現的數量 就後移
else}if
(iswindowok
(map_s,map_t,str)
)//如果視窗中的字元數量都夠了}}
return res;}}
;
LeetCode7反轉整數
給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。以字串方式思考...
LeetCode 7 反轉整數
給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。很簡單,就是不...
leetcode 7反轉整數
隨機一題 給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返...