• 注册
• 查看作者
• # 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
• 请登录之后再进行评论

• 做任务
• 全部清空
•   