单词搜索的递归函数

编码

给定字母:字母示例

letters = 'hutfb' 

我得到一个带有单词列表的文件。

我需要编写一个递归函数,使我能够检查字母可能产生的所有可能性。如果可能性在文件中的单词列表中,则需要打印该特定单词。

所以给定的字母

他们可以创建以下单词:

  • 一种
  • 交流电
  • 法案
  • 出租车

等等等等

字母组成的每个组合我都需要检查文件以查看其是否有效。如果是的话,我需要打印它们。

我不知道如何开始编写此功能。

克兰

我同意@dparolin关于处理单词文件以查看单词是否符合字母的要求,而不是生成可能的单词并查看它们是否在文件中。这使我们不必将文件读入内存,因为我们一次只需要检查一个单词。可以通过递归测试来完成:

letters = 'catbt'

def is_match(letters, word):

    if not word:
        return True

    if not letters:
        return False

    letter = letters.pop()

    if letter in word:
        word.remove(letter)

    return is_match(letters, word)

with open('words.txt') as words:
    for word in words:
        word = word.strip()

        if is_match(list(letters), list(word)):
            print(word)

用法示例

% python3 test.py
act
at
bat
cab
cat
tab
tact
%

而且我们应该能够处理很多字母而没有问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章