找符合條件的最小子串

2021-08-03 17:12:19 字數 440 閱讀 1902

例項

s = 「adobecodebanc」

t ="abc"

s最小符合條件t的最小子串為「banc」

algorithm

這裡首先要把t串字元放在雜湊表中,碰到t中字元則減1,這裡要注意hash中的個數可以為負數,因為比如abbbbbbca 找到abc很明顯是最後乙個子串,遍歷到後面的b時,它可能有用。那麼怎麼判斷要t中的字元全部都找到了呢?用乙個變數cnt記錄,如果hash表的個數大於0則+1。當cnt等於t的長度,代表t中字元都找到了,這時要做的事,就是找到最小的。用乙個變數minlen記錄最小,如果當前長度小於minlen,更新minlen和minl(子串起點)。接著我們要從此時的起點往右搜尋,直到雜湊表中有字元的個數重新大於0 **

最小子串覆蓋

給定乙個字串source和乙個目標字串target,在字串source 中找到包括所有目標字串字母的子串。注意事項 如果在source 中沒有這樣的子串,返回 如果有多個這樣的子串,返回起始位置最小的子串。您在真實的面試中是否遇到過這個題?yes 說明在答案的子串中的字母在目標字串中是否需要具有相同...

LintCode M 最小子串覆蓋

給定乙個字串source 和乙個目標字串target 在字串source 中找到包括所有目標字串字母的子串。注意事項 如果在source 中沒有這樣的子串,返回 如果有多個這樣的子串,返回起始位置最小的子串。您在真實的面試中是否遇到過這個題?yes 說明在答案的子串中的字母在目標字串中是否需要具有相...

最小子串覆蓋 LintCode

給定乙個字串source和乙個目標字串target,在字串source中找到包括所有目標字串字母的子串。注意事項 如果在source中沒有這樣的子串,返回 如果有多個這樣的子串,返回起始位置最小的子串。說明 在答案的子串中的字母在目標字串中是否需要具有相同的順序?不需要。樣例 給出source ad...