面试的Python编码测试问题

时间:2010-12-27 01:33:19

标签: python

我正在尝试提出一个很好的编码问题,要求面试候选人用Python解决。

他们将有一个小时来解决问题,使用IDE和访问文档(我们不关心人们记住了什么)。

我不是在寻找一个严格的算法问题 - 在采访的其他部分我们会做那种事情。本节的重点是坐下来观看它们实际编写的代码。所以应该让它们只使用数据结构,这些数据结构是应用程序开发人员的日常工具 - 列表,哈希表(Python中的字典)等,以解决准现实的任务。如果他们不能想到真正聪明的事情,就不应该完全阻止它们。

我们在Java编码测试中遇到了一个问题,它涉及读取文件并对内容进行一些处理。它适用于熟悉Java(甚至C ++)的候选人。但是我们遇到了许多不熟悉Java或C ++或C#或类似东西的候选人,但他们知道Python或Ruby。这不应该排除它们,但让我们陷入两难境地:一方面,我们从观察某人与一种完全陌生的语言的基础知识斗争中学到的东西并不多。另一方面,我们用于Java的问题在Python(或Ruby等)中变得非常微不足道 - 任何一半有能力的人都可以在15分钟内完成。所以,我正试图想出更好的东西。

令人惊讶的是,谷歌没有告诉我任何人做这样的事情,除非我太愚蠢到不能进入明显的搜索词。我提出的最好的想法是将工作人员安排到时间段,但它可能有点过于开放。你有一个很好的例子吗?还是坏的?或者你只是有个主意吗?

5 个答案:

答案 0 :(得分:15)

我已经要求候选人编写代码来实施保龄球评分,这很容易理解,但包含足够的皱纹,大多数人都需要迭代他们的方法几次以覆盖所有边缘情况。

来自ACM比赛的http://www.streamtech.nl/site/problem+set的许多问题也适合您的使用。我用它们来熟悉python语法和语言特性。很多是直接应用标准数据结构;有些人更关注算法问题。如果您对它们进行排序,我相信您会找到几个符合您需求的产品。

答案 1 :(得分:5)

我可以向您推荐Checkio.org

答案 2 :(得分:2)

你总是可以在Java之上给他们一些问题,比如让他们去做Java任务,然后让他们定义一个类,然后让他们做FizzBuzz。这应该与Java任务一样严格。

不要害怕提出一系列问题。也许你甚至可以让他们写几个单行来确保他们获得更好的Python点(写一个列表理解,你如何定义一个lambda等)。

答案 3 :(得分:1)

这是一个question I answered on SO recently,可能是合适的开头:

  

给定一个字符串"O João foi almoçar :) .",将其拆分为单词列表。   你必须删除所有标点符号,除了   表情符号。结果例如:   ['O','João', 'foi', 'almoçar', ':)']

我已经整理了一下这个问题。请查看上面链接的原文以及我的回答。它测试了很多东西,并且有不同的方法来解决这个问题。他们也可以得到半解决方案,首先忽略表情符号和标点符号方面。只是找到表情符号是另一个可以单独解决的子问题。等等...

您可以将其扩展为询问与其他标点符号相邻的表情符号,相邻表情符号,重叠表情符号,以:)形式定义表情符号,还搜索:-)形式的表情符号。您也可以将其转换为频率计数问题,而不是仅仅与您的Java问题分开。

我还建议搜索SO上发布的python+interview-questions个问题。有一些好的,如果你有时间的话,你甚至可以扩大你的搜索以浏览所有interview-questions个帖子。

答案 4 :(得分:0)

我并不特别了解Python,但我发现涉及递归的面试问题是一个非常有效的过滤器。我已经要求考生生成一个字符串的所有排列(并考虑如何测试它),并且我被要求伪编码最长公共子序列。