【Leetcode/Python】Longest Substring Without Repeating Characters

題目

給定一個字符串,找出不含有重復字符的最長子串的長度。

  • 示例 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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容