我正在尝试使用递归来查找“表达式”的深度,即嵌套元组有多少层:例如,
depth(('+', ('expt', 'x', 2), ('expt', 'y', 2))) => 2
depth(('/', ('expt', 'x', 5), ('expt', ('-', ('expt', 'x', 2), 1), ('/', 5, 2)))) => 4
基本上,我认为我需要检查(从外到内)每个元素是否是元组的一个实例,然后如果是,则递归调用深度函数。但是我需要找到一种方法来确定哪一组递归调用具有最大的深度,这就是我被困的地方。这是我到目前为止所拥有的:
def depth3(expr):
if not isinstance(expr, tuple):
return 0
else:
for x in range(0, len(expr)):
# But this doesn't take into account a search for max depth
count += 1 + depth(expr[x])
return count
对解决此问题的好方法的想法?