所以我需要定义一个名为total_len()
的递归函数,该函数接受二进制字符串树并返回所有叶子的长度之和。因此total_len( ( ("one", ("two","three")) , ("four","five") ) )
应该返回19,total_len( ("left","right") )
应该返回9,total_len("One-leaf")
应该返回8.我不知道从哪里开始,我知道我拥有的是完全的错了,但我到目前为止是这样的:
def total_len(BST):
"""Takes a binary string tree and returns the sum of all the lengths of
of all the leaves.
BST->int"""
if isinstance(BST,tuple):
return total_len(len(BST[0][0])+total_len(len(BST[1][0])))
else:
return BST
答案 0 :(得分:0)
你可以这样:
def total_len(bst):
if isinstance(bst, tuple):
if bst == ():
return 0
else:
return total_len(bst[0]) + total_len(bst[1:])
else:
return len(bst)