LeetCode陣列與字串-無重複字元的最長子串
阿新 • • 發佈:2018-12-15
無重複字元的最長子串
給定一個字串,找出不含有重複字元的最長子串的長度。
示例 1:
輸入: "abcabcbb"
輸出: 3
解釋: 無重複字元的最長子串是 "abc",其長度為 3。
示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 無重複字元的最長子串是 "b",其長度為 1。
示例 3:
輸入: "pwwkew"
輸出: 3
解釋: 無重複字元的最長子串是 "wke",其長度為 3。
請注意,答案必須是一個子串,"pwke" 是一個子序列 而不是子串。
Python: 思路: 1.定義 i 記錄 所有不重複元素組成 res 的最大長度 2.res 拼接所有不重複的char 字母 3.如果有重複的,找到重複字母char的 index,把char之後的字串 重新 賦值給 res、 res 再拼接上 char
class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ res = "" i = 0 for char in s: if char not in res: res += char else: res = res[res.find(char) + 1:] res += char if len(res) > i: i = len(res) return i