给定一个字母列表,在三元搜索树中查找所有可能的单词

时间:2016-01-09 11:20:15

标签: python ternary-search-tree

我编写了一个程序,用三元搜索树中的给定字母列表查找所有可能的单词。输出是所有单词的有序集合。以下是用于查找单词的python代码:

def _find_words(self, node: Node, letters: str, buffer=''):
    if node is None:
        return
    for c in letters:
        if node.key < c:
            self._find_words(node.high, letters, '')
        elif node.key > c:
            self._find_words(node.low, letters, '')
        else:
            buffer += node.key
            if node.isEnd:
                self.words.add(buffer)
                self._find_words(node.equal, 
                                letters.replace(node.key, '', 1), buffer)

树包含以下词语:cat,acts,act,actor,at,bug,cats,up,actors,upper

我得到以下输出的字母&#39; abugpscort&#39;:

['acts', 'cats', 'cat', 'act', 'bug', 'ors', 'up', 'or', 't']

而输出应为:

['actors', 'actor', 'acts', 'cats', 'cat', 'act', 'bug', 'up', 'at']

我该如何解决这个问题?

0 个答案:

没有答案