Leetcode刷题

leetcode 3. 无重复字符的最长子串 python实现

2019-12-15  本文已影响0人  vvblack4

题目:

leetcode3题目描述

解法:

遍历字符串,并建立一个字典存放当前不重复的字符和下标,记录每一次循环的最大无重复字符串长度,做比较。

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        max_len = 0
        if s is None or len(s)==0:
            return max_len

        str_dict = {} #存放不重复的字符和下标
        one_len = 0 #每一次循环的最大无重复字符串长度
        start = 0
        for i in range(len(s)):
            if s[i] in str_dict and str_dict[s[i]]>=start:
                start = str_dict[s[i]]+1
            
            one_len = i-start+1
            str_dict[s[i]] = i
            print(str_dict)
            max_len = max(max_len,one_len)
            print(max_len)
        return max_len
上一篇 下一篇

猜你喜欢

热点阅读