給定一個字元串,找出不含有重複字元的最長子串的長度。
示例:
給定 “abcabcbb” ,沒有重複字元的最長子串是 “abc” ,那麼長度就是3。
給定 “bbbbb” ,最長的子串就是 “b” ,長度是1。
給定 “pwwkew” ,最長子串是 “wke” ,長度是3。請注意答案必須是一個子串,“pwke” 是 子序列 而不是子串。
解題思路
先周遊整個字元串,然後對周遊到的每個字元後的字元檢查是否有重複元素,我們通過建立一個空的字元串,如果檢查的字元在這個空的字元串中沒有的話,我們将他加入這個空字元串中,并且記錄這個空字元串的長度。
class Solution:
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
maxLength = 0
for i,enum in enumerate(s):
count = 0
usedChar = str()
for j in s[i:]:
if j not in usedChar:
usedChar += j
count += 1
if maxLength < count:
maxLength = count
else:
break
return maxLength