我今天正在接受技术工作面试,是时候给我一些编程练习了。 我终于回答了最后一个问题:
鉴于数字:
116 104 105 115 32 105 115 32 99 111 114 114 101 99 ?
下一个号码是什么?
为了真正理解我的心态,我鼓励你停止阅读,并真正尝试弄清楚下一个数字是什么。花几分钟,如果你仍然无法弄明白,那么请继续阅读
我第一次花了5分钟寻找一个模式,我没有找到任何模式。
我开始感到愚蠢。记住你,那家伙正盯着我,等着回答。我觉得有点傻。
所以我得到了一个线索。 This is not a mathematical question
我又花了5分钟,他说The sequence is important
。
然后再过5分钟,他说He believed only programmers would understand this
又过了5分钟,我还没明白最后一个号码是什么。
他给出了最后的线索,让我可以解决它,它是Think of the numbers as replacment for some sort of Alphabet
。
现在我鼓励你提出答案,但我也想向人们提问,为什么他甚至会问这样的问题?这与编程有什么关系,看到我在绝望的痛苦琢磨中使用20分钟后他取得了什么成就?
答案 0 :(得分:36)
首先答案:116 - 它是ASCII字母的十进制形式“this is correc”所以接下来是字母“t”。
但是,当我想出(根据你的线索)这个模式时,我会发表一些评论:
那说:
顺便说一句,我错误地记得'a'为96而不是97,所以我会错过这个问题。 但我会一直在说话。
你必须传达你的思考过程,而不仅仅是想出答案。我曾经两次让面试官给我一些他们没想到我会解决的问题,这两个问题都是为了看到我解决问题的方法。
(顺便说一句,我从两次采访中得到了提议,因为我在解决问题时谈了我的方式 - 尽管我无法完成解决。)
答案 1 :(得分:28)
任何以十进制记下ascii值的人都是疯了。如果它是十六进制的,序列看起来会更加熟悉。
答案 2 :(得分:22)
您的问题让我想起了几年前EA的广告宣传活动:
答案 3 :(得分:19)
我患有自闭症。奇怪的是,在第一眼看到我不是一个数字模式后,接下来我注意到的是32s - 我碰巧知道的是空格。从那里我得到了这个/很快(不到一分钟)。检查起来很快,因为IH和ST代码是连续的,我不知道任何这些代码的ascii代码,但只要我确认IS间隙适合我知道我在正确的轨道上。
然后RR很快 - 在S下面一个字符。
所以 - 是的,我立刻得到了它。但是,正如我所说,我是自闭症。我不能做一些正常的东西,但模式匹配是我强迫性的事情。我怀疑这在采访中实际上是没有用的。
我知道这看起来像一个可怕的问题,因为它正在测试你的代码破解/模式匹配技能,而不是你的问题解决技巧,但我怀疑这不是意图。
当我雇用人员时,我使用了类似的练习,其中使用了一堆带有彩色形状的卡片,并要求人们将卡片分成堆积,并且 - 基于我的“适合”不适合'答案 - 制定出“游戏”的规则。
练习的目的不是为了测试他们的模式发现技巧,而是要了解他们对尝试解决一个难以解决的问题的经验的情绪反应,在这个问题中,他们将主要跑到死胡同里。在我的卡片练习中,卡片总是以一种顺序呈现,这种顺序会让受访者认为他们已经解决了这些问题,但却发现他们没有解决过三次。
对于具有挑战性的R& D角色,您希望雇佣那些对问题空间越复杂的人越感兴趣和兴奋。对于一个不那么具有挑战性的角色,你希望有人宁愿问题空间稳定 - 比如有人为大型数据库编写查询,我们根本不想改变系统。
这实际上是一个非常有用的排序练习,可以将候选人与角色匹配。
答案 4 :(得分:17)
所以,它花了我一点,我不需要提示,但116是正确的答案。给我的赠品不是32岁,而是模式中数字重复的方式。没有明确的数学逻辑,但有关该模式的其他内容为我点击了,我得到了它。
很久以前,我设法破解游戏(对于那些关心的人来说,Koronis Rift,我从来没有把它上传到BBS)。我破解它不是因为我想要完全复制它。这是因为它将游戏保存在游戏运行的同一个磁盘上,这真让我烦恼。一旦我破解了它,我为自己感到骄傲,因为复制保护已经做了一些相当棘手的事情。所以我想把我的标记放在加载屏幕上。
现在,我不知道加载屏幕在哪里。我用一个反汇编程序运行加载的东西,但从来没有到屏幕加载的地方。但是我已经查看了很多磁盘,并且有一系列字节看起来像是图片的原始数据。我知道如果是原始数据,图片必须有多大,所以我找到序列的开头和结尾,将其放入文件并在图像编辑器中加载文件。我是对的。
有人问我“你怎么知道这是一张照片?”而我无法解释。它看起来就像一个。
这不是一个优秀的程序员所期望的人才/技能。我发现面试问题几乎是专为候选人设计的,不会让他们真正感到愤怒。
是的,有一些关于候选问题如何解决的问题。但如果我要测试一下,我至少会想出一个与我希望候选人做的工作有关的玩具问题。
我唯一想问这个问题的方法是,如果我正在寻找一名逆向工程师或密码学家。能够注意到这样的模式并对他们的意思做出正确的猜测对于这两个角色来说是非常有价值的技能。但不适合一般程序员。
我认为一些采访者有一些虐待狂。看到一个候选人蠕动的喜悦。他们可能会谈论考虑候选人的问题解决能力,但我认为他们真的只是想要比候选人更聪明的感觉(不一定是现实)。
答案 5 :(得分:11)
嗯,我想我已经得到了答案,而且我很快就得到了答案 - 尽管借助一篇参考资料。
虽然在采访中听起来有点浪费时间。当然不是我要问的东西。我同意这可能只是程序员“得到” - 但它并没有表明程序员的技能有任何重要意义。
答案 6 :(得分:7)
下一个号码是116吗?
仍然,“Shir ir correct”也没有任何意义。
糟糕!
答案 7 :(得分:4)
我看到了32
,并立即点击了我。
可以说,问题的关键在于看看你如何摸索一个看似无法克服的障碍。您是否开始寻找有限差分,寻找算术或多项式序列?或者你只是眯了一会儿然后耸耸肩放弃了?
在我看来,仍是一个可怕的问题。
答案 8 :(得分:3)
的Python:
>>> ''.join(map(lambda x:chr(int(x)),'116 104 105 115 32 105 115 32 99 111 114 114 101 99'.split()))
'this is correc'
数字似乎是ASCII码。但是,这绝对不是我在采访中会问的问题,因为我不希望任何人在采访中知道十进制的ASCII码。十六进制有点不同(你可能希望人们知道%20是一个空格),但仍然。
答案 9 :(得分:3)
ASCII - > int?面试官很疯狂......
应该是116。
翻译:{{1}}
t缺失。 ascii表中的t是116。
答案 10 :(得分:2)
我想看看你的问题是如何解决的。
如果你已经快速解决了问题(我怀疑那些已经吸收了一些ASCII代码的人可以得到它们)你可能会得到另一个类似的类型 - 依此类推 - 直到你发现自己在你的“舒适区”之外。
作为受访者,这些问题可以成为检测工作不适合您的方式!
答案 11 :(得分:2)
其ascii代码。下一个字母是t
。他可能需要您了解ascii代码以及检测模式的内在能力。
答案 12 :(得分:2)
这是ASCII码,解决方案是“t”(116)。 但是,我们应该注意他的帮助,因为他可能会计划他们。
“这不是一个数学问题” 当然是,我们必须将数字解释为字符,并找到可用于填充空白字符的数字,因此,在任务结束时,您可以告诉他这是非常数学的,因为您必须使用函数完成模式。
“顺序很重要” 是的,32可以帮助你意识到他在谈论角色。
“他相信只有程序员会理解这一点” 一些非程序员也理解这一点,但大多数程序员都理解这一点。他试图指出在处理程序代码/调试时你可以满足这些数字。
“将这些数字视为某种字母的替代品。” 我相信你现在知道了答案。
他想测试你的创造力和意志力。我在IQ测试中遇到过这类问题(好的,在IQ测试中他们对ASCII字符没有吸引力,因为大多数人都没有听说过ASCII)。
编辑:
当然,这个问题是事先计划好的,所有帮助都是进一步的线索,他们感兴趣的是需要多少时间以及需要多少线索才能破译序列。但是,这是一个数学问题。
答案 13 :(得分:1)
感谢字母表的提示 - 它似乎是ASCII代码:
numbers = [116,104,105,115,32,105,115,32,99,111,114,114,101,99]
for n in numbers:
print "%c"%n,
给出:
t h i s i s c o r r e c
但是如果没有计算机的访问权限,我就不会这么快就弄明白了。而且我也会花五分钟时间感到非常不舒服......
答案 14 :(得分:1)
下一个号码是116.
这是一组简单的ASCII数字,代表字符串“this is correc?”。进行了一些查找,提示是在数字范围和32(空格)出现的事实。
您是否应该了解ASCII表格?这对我来说是一个面试问题没有意义 - 也许他希望你把它识别为ASCII序列。
答案 15 :(得分:1)
你知道,这让我想起了我曾经在学校里学过的很多很多的数学/逻辑考试,在那里我工作和工作,最后来到我认为是回答他们正在寻找只是为了感受到一种巨大的不满感,因为问题根本没有正确答案。它的答案很明显假设是正确的。
我知道这与你所提出的问题无关 - 是的,正如其他人所说的那样,重要的是你在尝试解决问题时的思考过程(并说出你大声思考的是什么)可能是这种情况下的最佳策略) - 但坦率地说,如果我是你,即使我做了弄明白我也无法抗拒说:
“看,我明白你可能要我说116,但为什么?为什么字符串This is correc
在逻辑上必须以t
结束?”
我的意思是,考虑一下。问题是,“下一个号码是什么?”对?不是:“下一个数字是什么,假设序列形成一个完整的陈述”,或者:“下一个数字是什么,假设这些都是英语单词”,或者甚至:“下一个数字是什么,因为它是最后号码“;它只是:“下一步是什么?”这是开放式的,无法回答。
我想知道面试官是否同意这种逻辑或者只是生气了。可能是后者。
答案 16 :(得分:1)
C#:
foreach(byte b = new byte[]{116,104,105,115,32,105,115,32,99,111,114,114,101,99})
Console.Write((char)b);
输出:
this is correc
所以答案是116,对于't'。
答案 17 :(得分:1)
作为编码员,我们每天都会遇到WTF:无能为力的客户,脑死亡的API,上周我们自己的代码......这只是我们行业的一部分。了解我们对这些情况的反应程度是一个非常有用的就业标准。问题本身远不如你提出答案并证明其合理性。
答案 18 :(得分:0)
正确答案显然是8 8 8 8 8 8 83 80 65 85 84 65 33。
答案 19 :(得分:0)
char序列出现:这是正确的 所以剩下的就是它的ascii值是116
答案是116
答案 20 :(得分:0)
我首先考虑了更多代码破解思想,寻找数字对。这让我相信它只是用字母替换字母中的字符。我刚刚在WW2上阅读了一些有关加密的书籍,并且有些代码破解的理论陷入了我的脑海。
答案 21 :(得分:0)
如果序列是十六进制的,我本来能够一目了然地读出这些字符,每个字符大约1-2秒。我知道大多数大写字母一目了然的十进制以及所有控制字符(就控制-A到控制-Z而言)并且会识别3,6,7,8,9,10,11,12 ,13,14,15,16,17,19,21,26和27的功能。我期望部分目标是看看申请人是否本能地识别字符序列。 32强烈暗示ASCII。
答案 22 :(得分:0)
这是116.我不需要你的线索。潜意识里,我想我注意到所有的数字都在97-122范围内(20年前我小时候编程BBC Micro帮我记住了ASCII代码!)。不过,我现在还没有把每一封信转换成我的脑袋:
>>> "".join(map(chr, [116, 104, 105, 115, 32, 105, 115, 32, 99, 111, 114, 114, 101, 99]))
'this is correc'
我想面试官可能想看看你如何通过问题思考,和/或认为作为程序员你可能知道ASCII代码。但如果这是一个高级Java开发人员的职位,我认为会有更重要的事情要问你。比如说,关于数据结构或算法。
如果他们真的让这个持续了20分钟,就像你说的那样,他们浪费了很多时间,他们可以用来评估你的开发技巧。