LeetCode 003

最近在看Python,正好找到中文版的LeetCode,决定用Python刷一些水题,熟悉下Python的语法。

LeetCode第三题《无重复字符的最长子串》,具体地址参见:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/

主要思路为维护同时一个字符set和list,set中存放已遍历的字符,list中存放当前的不重复的字符串。当出现一个set中已存在的字符时,则删除list中当前字符之前的列表,并以新列表重新初始化set。

class Solution:
    def lengthOfLongestSubstring(self, s):
        chars = set()        
        list = []
        max = 0
        for c in s :
            if c in chars :
                i = list.index(c) 
                list = list[i+1:]
                list.append(c)
                chars = set(list)
               
            else:
                chars.add(c)
                list.append(c)
                if len(chars) > max :
                    max = len(chars)
        return max
soulution = Solution()
n = soulution.lengthOfLongestSubstring("")
print(n)
提交结果 执行用时 内存消耗 语言 提交时间 备注
通过 148 ms 15.1 MB Python3 2021/06/14 11:49

添加备注