最佳答案
不是严格意义上的问题,更像是个谜。
这些年来,我参与了一些新员工的技术面试。除了问标准的“你知道 X 技术吗”的问题,我还试图了解他们是如何处理问题的。通常情况下,我会在面试的前一天通过电子邮件发送问题,并期望他们在第二天拿出一个解决方案。
通常结果会很有趣——错误的,但是有趣的——如果这个人能够解释为什么他们采取了一种特殊的方法,他们仍然会得到我的推荐。
所以我想把我的问题抛给 Stack Overflow 的观众。
问题: 您能想到的对象棋游戏(或其子集)的状态进行编码的最节省空间的方法是什么?也就是说,给定一个棋盘的棋子排列合法,编码这个初始状态和所有随后的合法行动采取的球员在游戏中。
答案不需要代码,只需要一个你将要使用的算法的描述。
编辑: 正如其中一张海报所指出的,我没有考虑到移动之间的时间间隔。你也可以把这个作为一个可选的额外项目:)
编辑2: 只是为了进一步澄清... 请记住,编码器/解码器是有规则意识的。唯一真正需要存储的是玩家的选择——其他任何东西都可以被编码器/解码器认为是已知的。
编辑3: 在这里选出一个优胜者是很困难的:)很多很棒的答案!