Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- |-- princes
- | |-- rices
- | | |-- ices
- | | | |-- ice
- | | |-- rice
- | | | |-- ice
- binary_tree.find_all_path('rices','ice') -->
- ['rices','ices','ice'] ['rices','rice','ice']
- binary_tree.find_all_path('princes','ice') -->
- ['princes','rices','ices','ice']
- ['princes','rices','rice','ice']
- class WNode(object):
- def __init__(self, w):
- self.root=w
- self.children=[]
- def __str__(self):
- return self.root
- def find_all_path(self,start,end,level=1, start_level=0, end_level=999, result=[])
- for node in self.children:
- word=str(node)
- if len(result)==0:
- del result[:]
- if word==start or str(node.root)==start:
- if word not in result:
- result.append(word)
- start_level=level
- elif len(word)==len(end):
- if word==w2 and start_level>0:
- result.append(word)
- if start not in result:
- result.insert(0,start)
- del result[:]
- if len(word)==len(end):
- end_level=level
- if start_level>0 and level>start_level and len(word)>len(end):
- result.append(word)
- node.find_all_path(start,end,level+1,start_level,end_level,result)
- return result
- binary_tree.find_all_path('princes','ice') -->
- ['prices', 'price', 'rice', 'ice'],
- ['prices', 'rices', 'ices', 'ice']
- ['prices', 'rice', 'ice'] -->WRONG
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement