題目:
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例1:
輸入: 「abcabcbb」示例2:輸出: 3
解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。
輸入: 「bbbbb」示例3:輸出: 1
解釋: 因為無重複字元的最長子串是 「b」,所以其長度為 1。
輸入: 「pwwkew」理解題目說的字串的概念,字串必須是連續,而子串行可以不連續,如示例3中』wke』是字串,'pwke』是子串行。輸出: 3
解釋: 因為無重複字元的最長子串是 「wke」,所以其長度為 3。
考慮用滑動視窗,先固定左邊,右邊滑動,一旦視窗裡面有相同元素則滑動左邊,再滑動右邊。
class
solution
:def
lengthoflongestsubstring
(self, s:
str)
->
int:
ifnot s:
return
0 lookup =
res =
0# 當前視窗長度
cur_len =
0for i in
range
(len
(s))
:if s[i]
notin lookup:
) cur_len =
len(lookup)
else
: index = lookup.index(s[i]
) lookup = lookup[index+1:
])cur_len =
len(lookup)
# 更新res
res =
max(res, cur_len)
return res
用set做容易超時,用字典有點難理解,滑動視窗比較容易。 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.給定字串,找到最長無重複字...