面试中的Python编码测试题

19 投票
5 回答
47472 浏览
提问于 2025-04-16 09:04

我正在想一个合适的编程题目,想让面试候选人用Python来解决。

他们会有一个小时的时间来处理这个问题,期间可以使用开发环境和查阅文档(我们不在乎他们记住了多少东西)。

我并不想要一个特别难的算法题——面试的其他部分会有这种类型的题目。这一部分的重点是观察他们实际写代码的过程。所以题目应该是让他们使用一些日常开发者常用的数据结构,比如列表、哈希表(在Python中叫字典)等,来解决一个类似真实场景的任务。如果他们想不出什么特别聪明的解决方案,也不应该完全卡住。

我们有一个用于Java编码测试的问题,涉及读取文件并对内容进行一些处理。这个题目对熟悉Java(甚至C++)的候选人来说效果不错。但我们遇到了一些候选人,他们根本不懂Java、C++或C#之类的语言,但会Python或Ruby。这本不应该排除他们,但让我们陷入了一个困境:一方面,我们从观看一个人挣扎于完全不熟悉的语言的基础知识中学不到太多东西;另一方面,我们用来测试Java的问题在Python(或Ruby等)中显得非常简单——任何有点能力的人15分钟就能搞定。所以,我正在尝试想出更好的题目。

令人惊讶的是,谷歌没有显示出有人在做类似的事情,除非我太笨了,没能输入明显的搜索词。我想到的最好主意是安排工人到时间段,但这可能有点太开放了。你有没有遇到过好的例子?或者坏的?或者你有没有什么想法?

5 个回答

2

你可以在考察他们的Java能力之外,再问他们几个问题,比如先让他们完成一个Java的任务,然后再让他们定义一个类,接着可以让他们做一下FizzBuzz的题目。这些问题的难度应该和Java的任务差不多。

不要害怕问一系列的问题。也许你还可以让他们写几个简单的一行代码,看看他们是否掌握了Python的一些细节(比如写一个列表推导式,如何定义一个lambda表达式等等)。

5

我可以推荐你一个网站,叫做 Checkio.org

16

我之前让候选人写代码来实现保龄球计分,这个题目很容易理解,但里面有一些复杂的地方,大多数人需要多次调整自己的思路,才能处理好所有的边界情况。

很多来自ACM比赛的问题,可以在http://www.streamtech.nl/site/problem+set找到,也很适合你使用。我用这些题目来熟悉Python的语法和语言特性。很多题目都是标准数据结构的简单应用;有些则更侧重于算法问题。如果你仔细看看,肯定能找到几个适合你的题目。

撰写回答