LeetCode刷題 76 最小覆蓋子串

2021-09-24 09:56:12 字數 1190 閱讀 2276

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

;}}

mt的長度,ns的長度

時間複雜度: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 中存在這樣的子串,我們保證它是唯一的答案...