leetcode 實現最短連續字串

2021-10-10 09:42:54 字數 836 閱讀 4577

/*

題目描述;

給定兩個字串s和t,求s中包含t所有字元的最短連續字串的長度,同時要求時間複雜度不得超過o(n)。

示例:輸入是兩個字串s和t,輸出是乙個s字串的子串。

input:s="adobecddebanc",t="abc"

output:"banc"

解題思路;

本題採用滑動視窗進行求解,即兩個指標l和r都是從最左端向最右端移動,且l的位置一定在r的左邊

或重合。

(1)先遍歷t中的字串,找出各個字元出現的個數,儲存在key-value中;

(2)然後遍歷s中字串,每遇到乙個t中的字元,則把對應的個數進行減1,如果這個字元對應的值大於

或等於0,則count++;

(3)若count第一次等於t.size()時,則第一次選中包含所有指定字元的區間,設定為暫時最短的字串。

,然後右移滑動視窗,進行加1,如果右移前最左邊的l字元正是字串t的乙個字元,那麼count就需要進行

減1;*/

c++語言實現

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

class solution

string minwindow()

/*嘗試右移,獲取最短的字串*/

l++;}}

}return mindow;

}private:

string s,t;

};int main(int argc,char* ar**)

leetcode 581 最短無序連續子陣列

給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。你找到的子陣列應是最短的,請輸出它的長度。示例 1 輸入 2,6,4,8,10,9,15 輸出 5 解釋 你只需要對 6,4,8,10,9 進行公升序排序,那麼整個表都會變為公升序排序。說明...

leetcode 581 最短無序連續子陣列

給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。你找到的子陣列應是最短的,請輸出它的長度。示例 1 輸入 2,6,4,8,10,9,15 輸出 5 解釋 你只需要對 6,4,8,10,9 進行公升序排序,那麼整個表都會變為公升序排序。說明...

LeetCode581 最短無序連續子陣列

給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。你找到的子陣列應是最短的,請輸出它的長度。示例 1 輸入 2,6,4,8,10,9,15 輸出 5 解釋 你只需要對 6,4,8,10,9 進行公升序排序,那麼整個表都會變為公升序排序。說明...