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付款,得到确认后,阿姨拉着我的手说上次谢谢我帮她付款,因为她微信用的也不熟,上次给我转账没有成功(我查看微信流水的确没收到款)。她已经连续两个早上在这家店已经等我,今天终于碰到我了,然后把准备好的现金还给了我。这件事给给我挺大的触动,科技的发展真的是普惠的吗,是否有意无意的通过技术手段给部分群体的日常生活筑起了壁垒;你善意的对待身边的人和事,也将受到人和事善意的对待,社会就是在这样点点滴滴小事中变得更好。

奇亚币挖矿初体验

近期市场上硬盘价格飞涨,京东上面8T以上硬盘要么价格上天,要么已经全没货了,“始作俑者”就是目前火热的奇亚币挖矿。

奇亚币是由BitTorrent的发明者Bram Cohen创建的,目前主流数字货币挖矿主要依赖工作量证明,浪费了大量能源,并且对挖矿逐渐集中化,奇亚币创新点在于其采用”空间和时间证明”算法,挖矿的资源不是计算能力,而是磁盘空间。其挖矿过程可大致可分为两步,耕地和耕种,其中耕地(P图)主要吃硬盘资源,为了提高效率需要用到固态硬盘,P图结束后就进入耕种环节,这一阶段对系统配置无要求,可以将p好的文件放在机械盘或移动硬盘就可以开始耕种。当区块链广播下一个区块的挑战时,就可以扫描耕地中的地块,看看他们是否拥有最接近挑战的哈希值。赢得区块的概率是指拥有的空间占整个网络的百分比。 继续阅读“奇亚币挖矿初体验”