小编jam*_*ans的帖子

如何从字典中构建一个Plinko单词板比蛮力更好?

考虑以下字母排列:

    B
   O A
  N R I
 D E N T
Run Code Online (Sandbox Code Playgroud)

从顶部字母开始,选择以下两个字母之一,Plinko风格,直到你到达底部.无论你选择什么样的路径,你都会创建一个四个字母的单词:BOND,BONE,BORE,BORN,BARE,BARN,BAIN或BAIT.DENT读到底部的事实只是一个很好的巧合.

我想帮助找出一个可以设计这种布局的算法,其中从顶部到底部的每条可能路径都会从(提供的)字典中生成一个不同的单词.程序的输入将是起始字母(在该示例中为B)和字长n(在该示例中为4).它将返回组成这种布局的字母,或者返回表示不可能的消息.它不一定是确定性的,因此它可能会生成具有相同输入的不同布局.

到目前为止,我还没有想到比蛮力方法更好的东西.也就是说,对于26^[(n+2)(n-1)/2]为布局底部选择字母的所有方法,检查所有可能的2^(n-1)路径是否给出字典中的单词.我考虑过某种前缀树,但路径可以交叉并分享与我混淆的字母.我对Python最熟悉,但至少我只是想要一个可以解决这个问题的算法或方法.谢谢.

python algorithm

13
推荐指数
2
解决办法
352
查看次数

标签 统计

algorithm ×1

python ×1