因此,我必须使用为拨号盘上的每个号码分配的字母,找到可以与电话号码拼写的所有可能组合。即:222 6262 可以拼写“A BANANA”。
给定任意长度 < 8 的任意数字,我可以找到与整数匹配的所有单词。即,findWholeWord(dictionary[2], 723)
会给我一个字符串数组{"RAD", "RAE", "RAF", "SAD", "SBF", "PAE", "PAD"}
(给我的字典有点愚蠢......)。我的字典分为 7 个部分,每个部分包含相同长度的单词。
我不确定如何取一个 7 位数字并给出所有单词组合,例如一个字长 6、一个字长 1 (6, 1)、5 和 2、5 和 1 和 1、4 和 3、4和 2 和 1。我想扔掉任何不涵盖整个单词的东西(任何带有 0 或 1、3 个字母和 2 个字母的单词与最后 2 个字母不匹配)。我不知道如何理解这个逻辑。我很确定这种逻辑有一个名字,因为我画了一棵树,它有一个很好的模式,但我不知道那个模式叫什么或者它到底叫什么。
一种方法是找到所有子词并尝试以任何可行的方式将它们组合在一起,另一种方法是尝试所有可能的词长组合:(7)、(6,1)、(5,2)、( 5,1,1), (4,3), (4,2,1), (4,1,2), (4,1,1,1) 等等...
不知道怎么做,不确定哪个更容易,不确定哪个最有效。