leetcode刷題筆記,無重複字元的最長子串題解
阿新 • • 發佈:2020-09-03
無重複字元的最長子串題目
給定一個字串,請你找出其中不含有重複字元的 最長子串 的長度。
輸入: "abcabcbb"
輸出: 3
解釋: 因為無重複字元的最長子串是 "abc",所以其長度為 3。
輸入: "bbbbb"
輸出: 1
解釋: 因為無重複字元的最長子串是 "b",所以其長度為 1。
輸入: "pwwkew"
輸出: 3
解釋: 因為無重複字元的最長子串是 "wke",所以其長度為 3。
請注意,你的答案必須是 子串 的長度,"pwke" 是一個子序列,不是子串。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
無重複字元的最長子串題目題解
提交時的程式碼↓
class Solution: def lengthOfLongestSubstring(self, s: str) -> int: str_list = [] str_list2 = [] len_max = 0 str_len = 0 for i in s: str_list.append(i) # 將字串分割為列表,儲存在str_list for i in range(0, len(str_list)): for n in range(0, len(str_list)-i): if str_list[i + n] not in str_list2: str_list2.append(str_list[i + n]) # 將str_list中的元素放進str_list2中 str_len = len(str_list2) else: len_max = max(len_max, str_len) str_len = 0 str_list2.clear() # 如果重複,清空str_list2 break return max(len_max, str_len)
結果
執行用時我記得超過了5.01%的人,記憶體消耗是30%的人