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

添加备注

 

早餐小记

上周在单位对面的贝壳农场买早餐,一位阿姨因为不会下载盒马APP导致无法支付(贝壳农场居然连自家的支付宝和现金都不支持),反反复复和服务员在那里交流。看到交流陷入僵局,我在等咖啡期间过去用盒马APP帮阿姨付款,然后她用微信转账给我。前天买早餐的时候,阿姨突然又出现在我面前,询问我上周是不是替她用盒马APP付款,得到确认后,阿姨拉着我的手说上次谢谢我帮她付款,因为她微信用的也不熟,上次给我转账没有成功(我查看微信流水的确没收到款)。她已经连续两个早上在这家店已经等我,今天终于碰到我了,然后把准备好的现金还给了我。这件事给给我挺大的触动,科技的发展真的是普惠的吗,是否有意无意的通过技术手段给部分群体的日常生活筑起了壁垒;你善意的对待身边的人和事,也将受到人和事善意的对待,社会就是在这样点点滴滴小事中变得更好。