2016-03-31 14 views
0

total_len() adında bir özyinelemeli işlev tanımlamalıyım. Bu, bir İkili Dize Ağacı alan ve tüm yaprakların uzunluklarının toplamını döndürür. Yani total_len((("one", ("two","three")) , ("four","five")))total_len(("left","right")) 9 dönmelidir, 19 dönmelidir ve başlatmak için nerede gerçekten bilmiyorum total_len("One-leaf") 8. dönmelidir ve ben ne var tamamen yanlış olduğunu biliyoruz, ama ne var bugüne kadar şudur:Python 3.4.3: İkili dize ağacındaki tüm uzunluktaki dizgelerin toplamı

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 

cevap

0

yazarsın böyle bir şey:

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) 
İlgili konular