首页 > 解决方案 > 构建递归算法来检查二维单词数组

问题描述

我正在尝试用字母而不是数字构建数独游戏。会有如下盒子:3 x 3 盒子

并且用户将尝试找到字母的正确排列,以使所有水平和所有垂直字母都形成单词。一种游戏模式是用户可以使用字母子集来填写框。对于这个游戏,我使用了一个 txt 文件中的特殊单词列表,所以我不能使用标准字典库。这是一个正确填写的拼图示例:
已完成拼图

对于为拼字游戏玩家制作的这个版本的数独,oxo 是一个有效的词。无论如何,我将如何构建一个算法来检查水平和所有垂直字母是否构成单词?

标签: algorithmrecursion

解决方案


该问题询问是否检查 6 个字符串是否都是字典中的有效单词。

伪代码-ish Java:

  String[] boardWords = getWordsFromBoard(); // Should be a 6 element array.
  Set<String> dictionary = loadDictionary(); // Read all words from dictionary file into a Set.
  for (String word : boardWords) {
    if (!dictionary.contains(word)) return false;
  }
  return true;

您在问题中的评论似乎表明您想知道如何根据字典检查 6 个字符串,并询问您是否需要将字典扫描 6 次。正如您在上面的代码中看到的,您可以一次将字典的内容加载到集合中,然后循环遍历单词并检查它们是否出现在集合中。


推荐阅读