Python递归与词树

2024-05-23 17:11:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个小程序,它要求我执行以下操作: 从word开始,我需要根据以下规则生成所有可能的单词:从单词'help'开始,'help'我成为树的根,然后每次我提出第一个类型的点('h'),然后这个词就变成了我'elp',然后我总是取单词'help',但此时我提出第二个字母('e'),然后这个单词变成我'hlp',然后我总是取第一个单词'help',举起第三个字母('l'),然后这个词就变成了我'hep',然后我总是取首字母'help',然后我提高第四个字母('p'),然后这个词变成了我'hel'。在

然后,在单词found('elp''hlp''hep''hel')中,我必须重复同样的事情,直到你找到叶子为止。所有这些单词都应该包含在一个列表中(显然也在树中)。 显然有一个递归,但我的问题是。。。在递归中没有任何好处!:(

谢谢你,如果你能帮我,这真的很重要。在

或者,据我所知,我必须在不改变字母顺序的情况下创建所有可能的组合


Tags: 程序类型列表规则字母help单词事情
1条回答
网友
1楼 · 发布于 2024-05-23 17:11:30

你需要编写递归函数。这个函数应该创建新词,并用每个新词作为参数调用自己。我建议您阅读一些关于Python中字符串的文档。在

示例函数:

def getWords(word):

    result = {}

    for x in range(1, len(word)+1):
        newWord = word[0:x-1] + word[x:]
        result[newWord] = getWords(newWord)

    return result

递归在这里:result[newWord] = getWords(newWord)。我们为每个新词调用函数。在

你可以用一些if/else语句来改进它。现在它甚至为一个char单词返回dictionary。在

^{pr2}$

相关问题 更多 >