leetcode 3 無重複字元的最長子串

2021-10-05 09:53:40 字數 1062 閱讀 8306

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。

示例 1:

輸入: "abcabcbb"

輸出: 3

解釋: 因為無重複字元的最長子串是 "abc",所以其長度為 3。

示例 2:

輸入: "bbbbb"

輸出: 1

解釋: 因為無重複字元的最長子串是 "b",所以其長度為 1。

示例 3:

輸入: "pwwkew"

輸出: 3

解釋: 因為無重複字元的最長子串是 "wke",所以其長度為 3。

請注意,你的答案必須是 子串 的長度,"pwke" 是乙個子串行,不是子串。

思路:

1.基本思路:採用滑動視窗的思想,即設定start,end分別從s的0號位置開始遍歷,end每向後走一位,判斷s[end]是否在start到end之間出現過,如果出現過,記錄位置為s,儲存當前的length=end-start,同時將start移動到s的後一位,繼續遍歷,直至end=s.size(),輸出過程中最大的length。

2.優化,對於查詢s[end]是否在start到end之間出現過,採用hashmap的方法,將字元與其對應的下標儲存起來,對每乙個s[end],判斷是否在hashmap**現過並且hashmap[end]>=start(當前判斷的位置一定要在start之後,因為s[end]可能在start之前出現過,這種情況不能更新),如果滿足條件,令start儲存為hashmap[end]+1,更新length。最後輸出過程中最大的length。

ac**:(c++)

class

solution

mp[temp]

= end;

end++

, length++;if

(length > max_length) max_length = length;

}return max_length;}}

;

leetcode 3 無重複的字串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...

leetcode 3 無重複字元的最長字元子串

堅持打卡!題目 給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwk...

leetcode 3 最長無重複字串

3.longest substring without repeating characters 題面 given a string,find the length of the longest substring without repeating characters.給定字串,找到最長無重複字...