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

[Leetcode] Python面试 coding style

全局:

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

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

x
请问各位大佬Python面试, coding style方面需要注意哪些?
如果需要定义多个函数,请问是define inline function好, 还是分开define function呢?
以Leetcode 684为例, 下面这段代码中的find和union function的inline define这种style是否有利于面试?多谢!


code.PNG (77.87 KB, 下载次数: 1)

code.PNG

上一篇:可删除字母,需要多少次构造
下一篇:深入探讨下java的PriorityQueue(pq)/TreeMap(tm)/TreeSet(ts)的时间复杂度
推荐
tinlittle 2019-4-2 01:00:43 | 只看该作者
全局:
union find一般是单独一个class,对这道题来说,除了union find的定义和功能,就没别的代码了,写在一起也没太大不好的感觉。

但还是要养成分而治之的好习惯,在白板写代码,一定要模块化,因为:

1. 白板有宽度没长度,天生适合模块化,每个函数得要短
2. 面试时一边写一边想一边说,很分心,更要降低当前任务的复杂性
3. 面试少的人,可能会经历大脑短路,先写一个简单的子函数,可帮助进入状态
4. 模块化易懂,面试官不吃力,让面试官吃力的化,会引发他以后对code review你的代码的恐惧...
5. 模块化易测,面试官给你个测试样例,你走程序会容易点

评分

参与人数 2大米 +6 收起 理由
不想用旧号 + 1 赞一个
14417335 + 5 很有用的信息!

查看全部评分

回复

使用道具 举报

推荐
337845818 2019-4-2 01:58:45 | 只看该作者
回复

使用道具 举报

推荐
14417335 2019-4-2 01:18:10 | 只看该作者
全局:
tinlittle 发表于 2019-4-2 01:00
union find一般是单独一个class,对这道题来说,除了union find的定义和功能,就没别的代码了,写在一起也 ...

为了完整,我说一个白板模块化不好的地方吧:

内部变量需要重新写。这样白板上写的字数就要增加很多。对于java来说完整的generics尤其消耗时间。

如果是我,我会跟面试官说,在键盘上敲会如何如何。白板上我会求简完全是时间因素。
回复

使用道具 举报

全局:
我觉得按正常dev的写吧
想这个例子,应该建一个union find的class
其实dev的时候很少写这种inner function,一般都是class function
回复

使用道具 举报

🔗
tinlittle 2019-4-2 01:35:48 | 只看该作者
全局:
14417335 发表于 2019-4-1 10:18
为了完整,我说一个白板模块化不好的地方吧:

内部变量需要重新写。这样白板上写的字数就要增加很多。 ...

所以要转Python呀😄

同意,碰到原题,有信心10分钟写完的,可以加快速度,一气呵成。省下时间写下一道题。

如果题解的代码量比较多,可以先定义一下子程序,直接在主程序里调用,最后有时间再去实现子程序。

回复

使用道具 举报

🔗
 楼主| 不想用旧号 2019-4-2 14:58:12 | 只看该作者
全局:
tinlittle 发表于 2019-4-2 01:35
所以要转Python呀😄

同意,碰到原题,有信心10分钟写完的,可以加快速度,一气呵成。省下时间 ...

谢谢大佬提点!非常有用的信息!
再想请问下Python面试会有什么劣势吗?或者有什么需要特别注意的地方呢?
听说team match的时候会看面试所用的语言,这样的话Python的机会是否会比Java/C++少呢?
多谢!
回复

使用道具 举报

🔗
tinlittle 2019-4-2 15:28:56 | 只看该作者
全局:
不想用旧号 发表于 2019-4-1 23:58
谢谢大佬提点!非常有用的信息!
再想请问下Python面试会有什么劣势吗?或者有什么需要特别注意的地方呢 ...

我不是大佬,14417335才是刷了上千题的大佬。

算法面试本身,所有大厂的官方政策(如果有公开)是不限语言,当然这是指C++,Java,和Python这三大。

用Python刷题用Python面试,和只学一门Python是两回事。

如果你只懂一门Python,一个做Android内核team不要你,是因为你显然没有内核编程经验,一个做前端的team不要你,是显然你没有HTML/CSS/JavaScript的相关经验,一个做企业管理应用的team不要你,显然是你从未接触过J2EE(过气的技术,不知道也罢)。你的简历是用来match team的。既然假定你已经昂赛面试了,那你的简历上就有别人看得上的东西。在这个基础上,Python是额外的优势。

Python可以看成是伪代码,为算法面试而生。

评分

参与人数 1大米 +1 收起 理由
14417335 + 1 这是真大佬,站得高看得远

查看全部评分

回复

使用道具 举报

全局:
tinlittle 发表于 2019-4-2 15:28
我不是大佬,14417335才是刷了上千题的大佬。

算法面试本身,所有大厂的官方政策(如果有公开)是不限语 ...

我觉得吧看情况。我碰到得情况是白板不大。。。模板化估计是有点不够写。因为你还要写思路, 和跑代码。而且题目很难得时候,模板话会导致python 参数太多,这样你会更容易遗忘东西, (假如要求bug free 得话)
回复

使用道具 举报

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

本版积分规则

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