1、76. 最小覆蓋子串
給你乙個字串 s 、乙個字串 t 。返回 s 中涵蓋 t 所有字元的最小子串。如果 s 中不存在涵蓋 t 所有字元的子串,則返回空字串 "" 。
注意:如果 s 中存在這樣的子串,我們保證它是唯一的答案。
解答:滑動視窗就是用一左一右兩個指標來做。右指標移動,一旦滿足條件,則判斷當前長度是不是最短的,然後不斷移動左指標。如果移動到不滿足條件了,繼續移動右指標,直到再次滿足條件。
字元不要求順序的話,可以用map來做。
2、567. 字串的排列
給定兩個字串s1和s2,寫乙個函式來判斷s2是否包含s1的排列。
換句話說,第乙個字串的排列之一是第二個字串的子串。
解答:固定大小的滑動視窗,每次滑動,新增新進的字元,刪除離開的字元,直到相等。
3、438. 找到字串中所有字母異位詞
給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。
字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 20100。
解答:和上題差不多。
4、3. 無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。
解答:基礎滑動視窗題
心得:直接建立130大小的陣列,就不用每次減『a』了
leetcode演算法專題訓練 七 查詢專題
33.搜尋旋轉排序陣列題目描述 公升序排列的整數陣列 nums 在預先未知的某個點上進行了旋轉 例如,0,1,2,4,5,6,7 經旋轉後可能變為 4,5,6,7,0,1,2 請你在陣列中搜尋 target 如果陣列中存在這個目標值,則返回它的索引,否則返回 1 每乙個數都是獨一無二的。解題思路 二...
leetcode專題訓練 51 N Queens
n皇后問題,用回溯法就可以解決。如果當前位置可以擺放,就將當前位置設定為 q 並嘗試在下一行擺放,在嘗試完這種情況後,再將當前位置重新設定維 如果當前位置不可以拜訪,就判斷下個位置能否擺放。而判斷能否擺放主要有4個約束,乙個是不在同一行,乙個是不在同一列,兩個是不在同一條斜線。所以本方法中用陣列儲存...
leetcode專題訓練 78 Subsets
直接回溯法搞一發即可,和77差不多。class solution def subsets self,nums list int list list int output l len nums defbacktrack begin int,cur list int for i in range beg...