LeeCode 3: 無重複字符的最長子串(自己的算法)

給定一個字符串,請你找出其中不含有重複字符的最長子串的長度。

示例 1:
輸入: "abcabcbb"
輸出: 3 
解釋: 因爲無重複字符的最長子串是 "abc",所以其長度爲 3。

思路:遍歷給定的字符串,依次將單個字符添加到列表中,如果出現重複字符,直接將列表中相應字符之前的所有字符都移除掉,每執行一次以上操作計算一次列表長度,最終通過比較就會得到最長字符串長度。本人的程序在leecode執行用時60ms,擊敗了99%的用戶。

    def lengthOfLongestSubstring(self, s):
        w=[]
        maxlen=0
        for i in s:
            if i in w:
                del w[:w.index(i)+1]
            w.append(i)
            print(w)
            length=len(w)
            maxlen=max(maxlen,length)
        return maxlen
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章