leetcode 3. 無重複字元的最長子串
難度:中等
給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。普通:示例 1:
輸入: 「abcabcbb」
輸出: 3
解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。
思路:維護乙個列表tmp,遍歷s判斷當前i是否在tmp中,若在,則找到i在tmp對應的index,並刪除index以及之前的tmp取值。
class
solution
:def
lengthoflongestsubstring
(self, s:
str)
->
int:
tmp =
c =0for i in s:
if i in tmp:
c =max(
[len
(tmp)
,c])
if tmp[-1
]==i:
tmp =
[i]else
: tmp = tmp[tmp.index(i)+1
:]else
:return
max(
[len
(tmp)
,c])
hashmap:
思路:構建雙指標,hashmap。①當前值在hashmap中。開始指標大於hashmap中的index時需要更新hashmap中的index為當前位置;否則開始的位置需要在歷史位置的基礎上向後移動一位。②每次迴圈需要更新結束指標hashmap與最大子串長度。
class
solution
:def
lengthoflongestsubstring
(self, s:
str)
->
int:
s =list
(s) hashmap =
start, end =0,
0 maxlen =
0for i,j in
enumerate
(s):
if j in hashmap:
if start>hashmap[j]
: hashmap[j]
= i else
: start = hashmap[j]+1
end +=
1 hashmap[j]
= i maxlen =
max(
[maxlen, end-start]
)return maxlen
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.給定字串,找到最長無重複字...