不是严格的问题,更多的是一个难题 多年来,我参与了一些新员工的技术面试。 除了问标准“你知道X技术”这个问题之外,我还试图去了解他们如何解决问题。 通常情况下,我会在面试的前一天通过电子邮件向他们发送问题,并期待他们在第二天提出解决scheme。 结果往往是相当有趣的 – 错误的,但有趣的 – 如果他们能解释为什么他们采取了特定的方法,那么他仍然会得到我的build议。 所以我想我会为Stack Overflow观众提出我的一个问题。 问题: 如何编码国际象棋游戏(或其子集)的时候,可以考虑的最节省空间的方法是什么? 也就是说,如果棋盘上有合法排列的棋子,则编码这个初始状态以及游戏中玩家采取的所有后续合法行为。 答案不需要代码,只需要描述你将要使用的algorithm。 编辑:正如其中一个海报已经指出,我没有考虑到移动之间的时间间隔。 随意作为一个可选的额外的:) 编辑2:只是为了进一步澄清…请记住,编码器/解码器是规则感知。 真正需要存储的唯一东西是播放器的select – 编码器/解码器可以假定其他任何东西。 编辑3:这里将很难挑选一个胜利者:)很多伟大的答案!
如何用独特的解决scheme生成Sudoku板? 我认为是初始化一个随机板,然后删除一些数字。 但我的问题是如何保持解决scheme的独特性?