计算结构深度的最简单方法是什么?

2024-04-25 07:57:58 发布

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

假设我有这样一个AST结构(列表列表):

 [+, [*, a,b],[*,c,d] ]
 [+, [*, a,b],[*,c,[ +, d, e] ] ]

计算结构深度的最简单和/或最快方法是什么,即它有多少层?你知道吗

作为第二个选项,您还可以将其作为字符串使用,而不是列表列表(LoL)。F.e.:

"[+, [*, a,b],[*,c,d] ]"

我两个都可以。你知道吗


Tags: 方法字符串列表选项ast结构lol
1条回答
网友
1楼 · 发布于 2024-04-25 07:57:58

你可以保持方括号的计数。 你可以找到更详细的解释here。 以下是代码的改编:

string = str(tree)

currentDepth = 0
maxDepth = 0
for c in string:
    if c == '[':
        currentDepth += 1
    elif c == ']':
        currentDepth -= 1

    maxDepth = max(maxDepth, currentDepth)

同样的警告,如果您的数据可能包含'['']',这将中断。 在这种情况下,需要为这些方括号定义转义方法。你知道吗

相关问题 更多 >