題目
給定一個字符串,找出不含有重復字符的最長子串的長度。
- 示例 1:
輸入: "abcabcbb"
輸出: 3
解釋: 無重復字符的最長子串是 "abc",其長度為 3。
- 示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 無重復字符的最長子串是 "b",其長度為 1。
- 示例 3:
輸入: "pwwkew"
輸出: 3
解釋: 無重復字符的最長子串是 "wke",其長度為 3。
請注意,答案必須是一個子串,"pwke" 是一個子序列 而不是子串。
class Solution:
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
dict = {}
start = 0
result = 0
for i, k in enumerate(s):
if k in dict:
#如果這里不加1的話,當輸入單個字符串時輸出為0,答案錯誤。
start = max(start, dict[k]+1)
dict[k] = i
result = max(result, i-start+1)
return result