給你乙個字串s
、乙個字串t
,請在字串s
裡面找出:包含t
所有字母的最小子串。
示例:輸入:s = "adobecodebanc"
,t = "abc"
輸出:"banc"
說明:如果s
中不存這樣的子串,則返回空字串""
。
如果s
中存在這樣的子串,我們保證它是唯一的答案。
class
solution
// 建立對映計數
maptemp =
newhashmap
<
>()
;for
(char c : t.
tochararray()
)// 字串轉換為陣列
char
ss = s.
tochararray()
;// 建立雙指標
int head =
0, tail =0;
// 記錄最小寬度 以及當時尾指標位置
int min = s.
length()
;int mt =-1
;// 開始搜尋
for(
int size = temp.
size()
; head < s.
length()
; head++
)// 縮小範圍(當視窗滿足條件,尾指標開始追趕;不滿足條件時停止追趕)
if(size ==0)
tail++;}
while
(size ==0)
;// 記錄最小值
if(head - tail +
1< min)}}
return mt ==-1
?"": s.
substring
(mt, mt + min +1)
;}}
設m
為t
的長度,n
為s
的長度
時間複雜度:o(m+n)
空間複雜度:o(n)
leetcode刷題python之最小覆蓋子串
題目 給你乙個字串 s 乙個字串 t,請在字串 s 裡面找出 包含 t 所有字母的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 學到了 之前沒記住又遇到了 新函式 counter 可以直接把字串變成字元 別的也行 的結合 all 判斷列表有沒有空字串或者0,有則返...
Leetcode刷題76 最小覆蓋子串
給你乙個字串 s 乙個字串 t 返回 s 中涵蓋 t 所有字元的最小子串。如果 s 中不存在涵蓋 t 所有字元的子串,則返回空字串 注意 如果 s 中存在這樣的子串,我們保證它是唯一的答案。示例 1 輸入 s adobecodebanc t abc 輸出 banc 示例 2 輸入 s a t a 輸...
雜湊錶類題目 Leetcode76題 最小覆蓋子串
給你乙個字串 s 乙個字串 t 請你設計一種演算法,可以在 o n 的時間複雜度內,從字串 s 裡面找出 包含 t 所有字元的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 如果 s 中不存這樣的子串,則返回空字串 如果 s 中存在這樣的子串,我們保證它是唯一的答案...