在中转换字符串

2024-06-02 05:44:35 发布

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

我想根据Python的字符串字典顺序将一个给定的字符串转换成一个树,其中每个单词将与下一个单词(不包括根目录)进行比较。也就是说,如果比较w

strings will be like this :
string = "sad adsa dqwe fdsf erwa"

到目前为止,我没有做任何事情,但是我有一个想法,那就是将给定的字符串拆分为字符串.拆分,将第一个单词指定为根,如果条件返回True,则递归检查下一个单词。在


Tags: 字符串string字典顺序bethis单词will
1条回答
网友
1楼 · 发布于 2024-06-02 05:44:35

如果我准确地理解了您的目标,您只需要一个字符串的二进制搜索树(BST)。 树的每个Node都将是以下格式的列表列表:[left_sub_tree, right_sub_tree, word]。空列表将表示空指针

让我们实现一个简单的递归过程,根据字典顺序插入新值(这是Python中字符串的默认比较顺序)。在

def insert(x, word):
    if len(x) == 0:
        return [[], [], word]
    if word < x[2]:
        x[0] = insert(x[0], word)
    elif x[2] < word:
        x[1] = insert(x[1], word)
    return x

现在,可以像这样为字符串创建BST:

^{pr2}$

查看结构的最简单方法是逐层打印树:

def print_tree(x, shift):
    if len(x) == 0:
        return
    print_tree(x[0], shift + 2)
    print " " * shift, x[2]
    print_right(x[1], shift + 2)

print_tree(tree, 0)

仅供参考。上面的过程执行所谓的“按顺序”遍历。在

相关问题 更多 >