python基础算法面试_用Python刷面试算法题(如leetcode)是怎样的体验?

一个字,爽。

开始用Python刷面试算法题是因为想转行当程序员。至于想当程序员的理由很简单也很功利:穷。▲我去年10月的工资,现在终于能上五位数了

于是我准备刷题上岸,在Python和Java纠结了很久,直到我看到Python可以用极简的代码实现:

①让两个变量交换值(最经典的)

a, b = b, a

②大写第一个字母

以下代码块会使用 title() 方法,从而大写字符串中每一个单词的首字母。

s = "programming is awesome"

print(s.title())

Programming Is Awesome

③输出心形(表白神器)

print(' '.join([''.join([('sergiojune'[(x-y)%10]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))

④构造斐波那契数列

reduce(lambda f,i:f.append((f[-2]+f[-1])) or f,range(10),[1,1])

作为菜鸡,我看到满屏的代码就头痛,所以看到Python这种简洁清晰的代码块,一下就动心了。

在大佬的推荐下开始用LintCode开始刷算法题,综合体验极佳。

代码简洁,上手容易

我学过一点Java的皮毛,但用Java编码老是报错(当然这不是Java的问题,是我太菜了),越来越没有信心。

而使用Python,可以轻松上手,并立即着手构建可用的东西。早期的成就感是学习编码的一个非常重要的因素,而且据我了解,不少工程师在一开始学的Java,但在实际工作中更偏好用Python,因为能极大提升工作效率,而且有种莫名的愉悦感。

刷题速度快,适合短平快冲刺

在LintCode上,也有不少同好用Python解题,而且花费的时间明显比Java短,说实话,我甚至觉得用Python有点像在“作弊”。

刷题速度快这一点对当时的我来说太重要了,推荐所有想转码的兄弟都可以先学一下Python(除非你足够有钱而且闲,有大把的时间刷题)。我基本能保证每天下班后刷3、4道题,刷了大概200道题后我就开始投简历了。

如果需要靠刷题通过面试,Python真的是天选之子。刷题速度很快,非常适合短平快冲刺,毕竟社畜真的没那么多时间扑在题海里,裸辞更是没有勇气。。

我知道自己水平不高,所以也没有投递BATJ那种大厂,只求先入个行,至少行业起薪高。刷题刷得差不多后就开始面试,我在离职1个半月找到了工作(有一点运气的成分),现在工资到手1w出头一些,已经很满意了。

Python:无情的刷题机器

当然,我也不是无脑吹Python,在参加面试后,用Python刷题的弊端就出来了。。

由于我当时只顾着用Python刷题,享受它的快速,没有深入了解Python的语言特性,并不利于对基础的算法与数据结构的了解,面试里面问到底层语法知识的时候我就很懵逼,coding轮做得再好再快也无济于事……

所以,如果仅仅是为了刷题快用Python,那刷题也没有太大意义了。虽然Python内置的很多函数可以帮你“作弊”,但我们用LintCode刷题,最重要的是在这个过程中练习算法思路,提升coding技能。

于是我又去研究了一波Python的课程。我发现市面上Python的入门教程很多,但很少会涉及Python基础算法。这里推荐大家免费试听《九章算法基础班》,从算法基础知识开始学起,课上敲代码,课下复习巩固,通过做题巩固算法知识点,非常适合零基础转码,对于我这种算法知识薄弱的人也非常受用(课上会用Java和Python两种语言讲解算法基础知识,在课上跟着老师敲代码,课下进行实战练习,对于还在纠结要学Java还是Python的人,报这门课是最稳妥的)。

总之,用Python刷算法题是真的爽,但一定要掌握方法,不能为求速度狂刷。对于基础薄弱的人来说,不必排斥报班。在《九章算法基础班》上,你可以在老师指导下进行系统的学习,在刷题的过程中巩固知识点,形成自己的算法体系。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值