|
|
1
113
我看到过一小部分相对简单的编程问题,它们被用来排除候选程序,就像FizzBuzz一样。以下是我所看到的一些问题,按照难度增加的顺序排列:
这些都是针对Java的,您可以使用标准库,因此其中一些非常简单(如6)。但它们的作用就像汽水一样。如果你对编程有一点了解,你应该能够很快地完成。即使你不太懂这门语言,你至少应该能够给出如何做某事的想法。
我还应该注意:他让人们在完成这些任务时使用他的电脑。特别指示他们: 能够 使用谷歌等。 |
|
|
2
33
也许这并不能直接回答你的问题,但我不确定你是否需要提出另一个问题。除了“容易记忆”之外,这个问题也很简单,这就是问题的关键所在。如果你正在面试的人属于FizzBuzz“知名”的那一类人,那么他们属于FizzBuzz类型的问题不会过滤掉的那一类人。这并不意味着你会当场雇用他们,但这确实意味着他们应该能够轻松地通过面试,进入面试的关键阶段。 换句话说,任何花时间阅读的人 Coding Horror 值得进一步采访。让他们快速写出解决方案,简单讨论一下(例如,你如何测试它?),然后继续下一个问题。正如文章所说,“有那么多候选人不能完成最简单的编程任务,真是令人惊讶。” |
|
|
3
25
任何早期的 Project Euler 可能会很好。 例如:
|
|
|
4
15
|
|
|
5
12
我想要一个不涉及模运算符的FizzBuzz问题。特别是因为我通常会采访那些模运算符并不经常出现的web开发人员。如果这不是你经常遇到的事情,那就是你在需要的时候会去查阅的事情之一。 (当然,这是一个概念,理想情况下,你应该在数学课程中遇到,但这是一个不同的主题。) 倒三
按正常顺序操作很简单:将循环索引乘以3,直到达到一个超过200的数字,然后退出。您不必担心在多少次迭代之后终止,您只需继续进行,直到达到第一个太高的值。 但回顾过去,你必须知道从哪里开始。有些人可能会直觉地意识到198(3*66)是3的最高倍数,因此,将66硬编码到循环中。其他人可能会使用数学运算(整数除法或浮点除法为200和3时的floor())来计算该数字,这样做可以提供更通用的方法。
|
|
|
6
11
任何东西 ,试试这个:
这不是我的主意,而是 posted in a comment blog post 所有关于最初的问题。 雅各布接着说:
在最初的博文评论之后,有一个更有趣的讨论,关于如何在不需要第三个变量(加法/减法、xor等)的情况下执行变量交换,当然,如果您使用的语言在单个语句/操作中支持这一点,那么这可能不是一个很好的测试。 虽然不是我的想法,但我想在这里发布这个问题,因为这是一个非常简单的问题,可以(而且应该)在大约10秒钟内由编写过最简单程序的人回答。它也不需要使用一些明显晦涩的运算符,比如模运算符,这是许多人不熟悉的,他们是相当不错的程序员(我从自己的经验中知道)。 |
|
|
7
9
斐波那契、反转字符串、计算字节中设置的位数是其他常见的方法。 Project Euler 也有大量的收藏,难度越来越大。 |
|
|
8
5
让他们编写一个应用程序,返回给定数字的因子。这很容易做到,但很难在短时间内做好。你可以在很短的时间内看到他们的风格和思考问题的方式。 |
|
|
9
2
实现strstr()需要对该语言有基本的了解,同时提供巧妙优化的机会。 |
|
|
10
2
如果是C/C++面试,请确保该人员了解指针。 通用-简单算法([单/双]链表)。询问每种情况下添加的复杂性(开始时、结束时、优化…)? (常规)如何从仅进行3*N/2比较的数组(N个大小)中找到最小值和最大值? C/C++:如何优化缓冲区中的多个“strcat”? |
|
|
11
1
从C++ FAQ Lite中签出6.14个: |
|
|
12
1
查找素数列表是一个相当常见的问题,但它仍然需要一些思考,人们可能会给出不同程度的答案。
|
|
|
13
0
怎么样: 我想用一个整数来存储多个值。请描述这将如何工作。 如果他们对位掩码和操作一无所知,他们可能无法解决其他问题。 |
|
|
tingytong · 在“如果还有”语句中,订购是否重要? 12 年前 |