Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def graph(arr, layer=0, letters=1, word=0, graphized=[]):
- if layer==0:
- graph(arr, layer=1, graphized=graphized)
- return graphized
- elif letters<=len(arr[word]) and word<len(arr):
- cur_word=word
- while cur_word<len(arr) and arr[word][:letters-1] == arr[cur_word][:letters-1]:
- new_index=cur_word
- cur_let=arr[cur_word][letters-1]
- if cur_let not in graphized:
- graphized.append(cur_let)
- if letters < len(arr[cur_word]):
- if arr[cur_word-1][:letters]==arr[cur_word][:letters] and cur_word>0:
- graphized.append([''])
- else:
- graphized.append([])
- part=graphized[-1]
- new_index=graph(arr, layer+1, letters+1, cur_word, part)
- if new_index==cur_word:
- cur_word+=1
- else: cur_word=new_index
- return cur_word
- return word
- #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- def search(graph, word, letter=0):
- wlen=len(word)
- if letter<wlen and word[letter] in graph:
- list_ind=graph.index(word[letter])+1
- if len(graph)>list_ind:
- part=graph[list_ind]
- if isinstance(part, list):
- return search(part,word,letter+1)
- elif letter==wlen-1:
- return True
- else:
- return False
- elif letter==wlen-1:
- return True
- else:
- return False
- elif '' in graph and letter==wlen:
- return True
- else:
- return False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement