题目
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
示例1
输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例2
输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例3
输入: “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是子串的长度,“pwke” 是一个子序列,不是子串。
运行成功的代码
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
max_len = 0
left = -1
d = {
}
for i in range(len(s)):
right = s[i]
if right in d and d[right] > left:
left = d[right]
d[right] = i
if (i - left) > max_len:
max_len = i - left
return max_len