打卡LeetCode第三天——無重複字元的最長子串
阿新 • • 發佈:2018-12-15
題目要求:給定一個字串,找出不含有重複字元的最長子串的長度。
示例 1:
輸入: "abcabcbb"
輸出: 3
解釋: 無重複字元的最長子串是 "abc",其長度為 3。
示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 無重複字元的最長子串是 "b",其長度為 1。
示例 3:
輸入: "pwwkew" 輸出: 3 解釋: 無重複字元的最長子串是 "wke",其長度為 3。 請注意,答案必須是一個子串,"pwke"是一個子序列 而不是子串。
思路:遇到重複字元就重新開始統計字串,將原來的最長長度記錄下來,遇到下一個字元就重新統計長度與之前的最長長度進行比較。
【python程式碼】
class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ mcount=0 count=0 s1=[] for i in s: if i not in s1: s1.append(i) count+=1 if count>=mcount: mcount=count else: s1=s1[s1.index(i)+1:] s1.append(i) count=len(s1) if count>=mcount: mcount=count return mcount