最近在看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 |
添加备注 |