纯 Python3 实现力扣上的各种算法题。
按专题、难度进行一定程度的分类,争取每日更新。
本人(水货)学生党一枚,为争取毕业时能取得一个offer(能吃得起饭就行的那种),开始力扣刷题之路,虽然做不到每日一题都能提交通过,但是可以保证每天保持在leetbook上按专题刷题。
由于本人使用的主语言是Python3,在刷题过程中,发现很多题目下都有非常多高质量的Python题解,但有些在我个人看来,很多题解稍微显得有一些不那么“Pythonic”。Pythonic这个词,我个人是在《流畅的Python》这本书上看到的,作者通过这个词表达出了用Python语言写代码应该要表现出Python独有特性的态度,我个人对Pythonic这个词的理解是“用Python语言编写出地道的代码”。在此之后,我或多或少都会在编写完一段代码后,尝试以更Pythonic的方式去“优化”。这里的优化之所以打引号,是因为在某些情况下,使用Pythonic的代码可能会稍稍影响性能,但绝不会本末倒置。
Python最好的品质之一是一致性。当你使用Python工作一会儿后,就会开始理解Python语言,并能正确猜测出对你来说全新的语言特征。然而,如果你带着来自其他面向对象语言的经验进入Python的世界,会对len(collection)而不是collection.len( )写法觉得不适。当你进一步理解这种不适感背后的原因之后,会发现这个原因,和它所代表的庞大的设计思想,是形成我们通常说的“Python风格”(Pythonic)的关键。这种设计思想完全体现在Python的数据模型上,而数据模型所描述的API,为使用最地道的语言特性来构建你自己的对象提供了工具。
——《流程的Python》序幕