1
我一直在做面试准备问题,这是一个问题,我遇到了麻烦,因为我不确定如何实施解决方案。所以这里是设置。给你一个8x8的字母和单词列表,你必须返回列表中最长的单词,这个单词可以通过从网格上的一个字母开始,然后以一个骑士的方式在网格中移动来形成在国际象棋。例如,如果你有列表[“字”,“串”,“测试”]及以下电网:面试准备网格中的单词
Y W E Z T N U W
O P A A C Q G F
T E L Z X C V B
N M M W F R T O
U I O N A S D F
B E J O L Z V C
T B N M Q W E R
T A S G X Z R S
然后您将返回“测试”,因为这可以通过启动在形成'T'的网格左下角,跳到两个右边的那个得到'E',跳下来两个,然后右边一个得到'S',然后离开两个一个,得到' T',并且在这个网格上不能形成其他词。
我想你会使用分支和界限算法,但我完全失去了如何设置。谁能帮忙?我试图在python中实现。
注意:字母可以在网格中重复,也就是说,您可以根据需要多次跳转同一个字母。