北美程序员面试干货

LeetCode 3 [Longest Substring Wi

2016-08-04  本文已影响30人  Jason_Yuan

原题

给定一个字符串,请找出其中无重复字符的最长子字符串。

样例
例如,在"abcabcbb"中,其无重复字符的最长子字符串是"abc",其长度为 3。
对于,"bbbbb",其无重复字符的最长子字符串为"b",长度为1。

解题思路

完整代码

class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        left, res = 0, 0
        LastAppeared = {}
        for right in range(len(s)):
            # 如果出现重复,更新合法子串的左边界
            if s[right] in LastAppeared and LastAppeared[s[right]] >= left:
                left = LastAppeared[s[right]] + 1
            LastAppeared[s[right]] = right
            res = max(res, right - left + 1)
        return res
上一篇 下一篇

猜你喜欢

热点阅读