Python 3.4.3。二进制字符串树中所有字符串长度的总和

时间:2016-03-31 18:57:02

标签: python recursion binary-tree string-length

所以我需要定义一个名为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

1 个答案:

答案 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)