【问题标题】:How to find all possible words that can be created from a list of letters如何找到可以从字母列表中创建的所有可能的单词
【发布时间】:2014-03-22 13:50:30
【问题描述】:

我有一个字母列表,我正在尝试找到可以用这些字母创建的所有可能的单词。我没有在 Objective-c 或类似的东西中找到任何实现。

我发现了一个不错的 Boggle 求解器,它很好,但不是我想要的。我不需要选定的字母彼此相邻。我想知道通过组合 25 个字母列表中的任何字母可以找到多少个单词。

【问题讨论】:

  • 定义“单词”。 “ksjhdf”是一个词吗?
  • 不,单词是可以在英语词典中找到的任何单词。
  • 在这种情况下,您需要一个字典,它可以为您提供所有可能的单词的列表,或者至少告诉您所有以子字符串开头的单词。

标签: objective-c boggle


【解决方案1】:

一种方法是阅读字典,并为每个单词存储一个按字母顺序排列的单词包含的字母列表。 (如果您使用 ASCII,您可以使用单个 32 位 int 来存储给定单词的列表。只需为字母表中的每个字母分配一点,如果该字母存在于单词中,则将其打开。)

读入字典后,您可以扫描它以提取包含 25 个字母的单词。如果您按照上面的建议将与每个单词关联的字母列表存储在 int 中,您可能会得到一些误报,其中有问题的单词包含 2 个字母,但您的 25 个字母列表中只有 1 个字母。丢弃这些值。

剩下的一组是可以用你拥有的 25 个字母拼写的单词。

【讨论】:

    猜你喜欢
    • 2012-05-17
    • 2021-01-15
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多