• 注册
    • 查看作者
    • leetcode 3.

      Given a string, find the length of the longest substring without repeating characters.

      Example 1:

      Input: "abcabcbb"Output: 3 
      Explanation: The answer is "abc", with the length of 3.

      Example 2:

      Input: "bbbbb"Output: 1Explanation: The answer is "b", with the length of 1.

      Example 3:

      Input: "pwwkew"Output: 3Explanation: The answer is "wke", with the length of 3. 
                   Note that the answer must be a substring, "pwke" is a subsequence and not a substring.

      class Solution:
          def lengthOfLongestSubstring(self, s: str) -> int:
              #字典
              diction ={}
              #开始的位置
              start = 0
              #最长的单字
              longest =0
              #iterate
              for i in range(len(s)):
                  #字典中查找s[i]
                  position = diction.get(s[i])
                  #如果查到,并且大于启示位置 防空格
                  if position is not None and position >=start:
                      #重新定义长度 位置-启示位置
                      length = i - start
                      #启示位置 等于查找到位置的+1 便于后面没重复查找最长单词
                      start = position +1
                      #如果比之前的 长 取最长
                      longest = max(length, longest)
                  #赋予字典地址
                  diction[s[i]] = i
              #如果start之后都没有重复 返回剩下长度
              longest = max(len(s) - start, longest)
                  
              return longest

      纽约州·纽约
    • 0
    • 0
    • 0
    • 366
    • 请登录之后再进行评论

      登录
    • 做任务