查看: 3358| 回复: 6
跳转到指定楼层
上一主题 下一主题
收起左侧

[学Python/Perl] python刷题如何才能正确入门

🔗
1ss | 只看该作者 |倒序浏览
全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
我从本科物理转专业到ece master,基础比较薄弱,之前用python做过一些数据分析的东西,但是后来算法课老师都用类似java的伪代码写的,想把思路用python实现有点转不过弯来。而且python好多东西像append,还有if a in b这样的方法或者语句的时间复杂度不好分析啊,现在有点力不从心。

本来想熟练了java再刷,但是又看见地里有很多推荐python刷题的大佬,各位大佬都怎么解决这些问题的先谢过了

上一篇:面试算法daily alert subscription?
下一篇:在职刷算法, design题打卡帖
全局:
append复杂度怎么不好分析了,根据数据结构来啊。至于in么也是根据数据结构来啊,字符串和list是O(n),set和字典都是O(1)。其实语言什么的都只是一个工具,数据结构和算法才是关键。数据结构一共也就那么一些,换汤不换药,算法的话这得看个人积累了。这些都和语言关系不大。而且我觉得python刷题挺爽的,因为python真的已经被包装的很好了,用很少的代码就可以达到很好的效果。我最近试着在用js刷题,感觉就没有python那么得心应手了,因为很多结构和语法都还没有python包装的那么好,都得自己手动去实现。不过说到底还是熟练问题,用哪个语言刷题其实差别并不大,熟练最重要。
回复

使用道具 举报

🔗
qqaas 2019-1-2 13:21:33 | 只看该作者
全局:
if a in b 应该是O(n)或者O(logn)吧
append 的话去看下python list底层是怎么怎么实现的 好像是array+linkedlist 那样的话是O(1)
这个逐步分析的过程避免不了额 你要不太熟悉python刷多了就熟练了就会了呗
我个人是只拿java 和c++刷题的 感觉你要java熟练写java更好
pythonic的代码不好写  如果不写Pythonic风格,跟java思路差不多基本也一回事,只不过省了些初始化的语法
回复

使用道具 举报

全局:
我之前刷题是用python一刷, 然后用java或者c++写alternative solution。python确实好用,但是我觉得容易让我掉进comfort zone。

我的经验
入门的话建议楼主先用python参考textbook练一下不同data structure,后期熟练的话可以尝试写个ply compiler 实现file IO/ string parse/ regex match/ recursion ...
回复

使用道具 举报

🔗
jack12345 2019-1-2 19:33:36 | 只看该作者
全局:
可以先看看廖雪峰的教程,然后再刷刷leetcode
回复

使用道具 举报

🔗
chuck1212 2019-1-3 00:42:36 | 只看该作者
全局:
list是用array实现的, run out of space以后会double size, 所以append应该是amortized O(1)
回复

使用道具 举报

🔗
magicyu 2020-2-21 05:05:25 | 只看该作者
全局:
同感,因为不熟悉这些基本的操作是怎么实现的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表