【发布时间】:2012-11-26 05:27:50
【问题描述】:
因此,我必须使用为拨号盘上的每个号码分配的字母来查找可以与电话号码拼写的所有可能组合。即:222 6262 可以拼写“A BANANA”。
给定任意长度 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) 等等...
也不知道怎么做,不知道哪个更容易,不知道哪个效率最高。
【问题讨论】:
标签: java search combinations