Leetcode 解题 Longest Substring without repeating charcater python

原题:

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

For example, the Longest substring without repeating letters for "abcabcbb" is "abc", with the length is 3

思路:参考blog.csdn.net/hcbbt/article/details/43966513

       开一个数组记录当前字符最近出现的位置,遍历,更新左边界,用它计算最大值。

代码:

class Solution:
    def lenthOfLongestSubstring(self, s):
        res = 0
        left = 0
        d = {}

        for i , ch in enumerate(s):
            if ch in d and d[ch] >= left: left = d[ch] + 1
            d[ch] = i
            res = max(res, i -left + 1)
        return res

 

posted @ 2015-04-25 21:45  第八片叶子  阅读(130)  评论(0)    收藏  举报