并不是一个严格的问题,更像是一个谜题...
这些年来,我参与过一些新员工技术面试。除了问"你知道X技术吗"这样的标准问题外,我还尝试了解他们如何解决问题。通常,我会在面试前一天通过电子邮件发送问题,并期望他们在隔天想出解决方案。
通常结果会相当有趣——错误的,但很有趣——如果他们能够解释为什么采取了特定的方法,那么他们仍然会得到我的推荐。
所以我想把其中一个问题提供给Stack Overflow的听众。
问题:您能想到最节省空间的方式来编码国际象棋游戏(或其子集)的状态吗?也就是说,给定一个棋盘并合法地排列棋子,对游戏中所有初始状态和所有后续的合法移动进行编码。
答案不需要包含代码,只需描述您将使用的算法即可。
编辑:正如其中一位发布者所指出的那样,我没有考虑移动之间的时间间隔。如有需要,请自由添加这个作为可选项 :)
编辑2:仅作进一步澄清...请记住,编码器/解码器是具有规则意识的。唯一真正需要存储的是玩家的选择——任何其他东西都可以被编码器/解码器认为是已知的。
编辑3:在这里挑选一个赢家会很困难:) 有很多好答案!