if({1,0} , ...)用法 Excel學習筆記:if({1,0})用法
阿新 • • 發佈:2022-04-01
無重複字元的最長子串
題目地址
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
描述
給定一個字串,請你找出其中不含有重複字元的 最長子串 的長度。
樣例
示例 1:
輸入: "abcabcbb"
輸出: 3
解釋: 因為無重複字元的最長子串是 "abc",所以其長度為 3。
示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 因為無重複字元的最長子串是 "b",所以其長度為 1。
示例 3:
輸入: "pwwkew"
輸出: 3
解釋: 因為無重複字元的最長子串是 "wke",所以其長度為 3。
請注意,你的答案必須是 子串 的長度,"pwke" 是一個子序列,不是子串。
題解-暴力法
class Solution: max_length = 1 def lengthOfLongestSubstring(self, s: str) -> int: if not s: return 0 for index in range(len(s)): curr = index + 1 while curr < len(s) and s[curr] not in s[index: curr]: curr += 1 if curr - index > self.max_length: self.max_length = curr - index return self.max_length
題解-滑動視窗
class Solution: max_length = 1 def lengthOfLongestSubstring(self, s: str) -> int: if not s: return 0 left, right = 0, 0 visited = set([]) while right < len(s): if s[right] not in visited: visited.add(s[right]) right += 1 if len(visited) > self.max_length: self.max_length = len(visited) else: visited.remove(s[left]) left += 1 return self.max_length