本文整理汇总了Python中TreeNode.TreeNode.add方法的典型用法代码示例。如果您正苦于以下问题:Python TreeNode.add方法的具体用法?Python TreeNode.add怎么用?Python TreeNode.add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TreeNode.TreeNode
的用法示例。
在下文中一共展示了TreeNode.add方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: A2
# 需要导入模块: from TreeNode import TreeNode [as 别名]
# 或者: from TreeNode.TreeNode import add [as 别名]
def A2(mot,n):
"""Renvoie la liste des anagrammes stricts composes au maximum de n mots"""
global dico
tree = TreeNode()
t = time()
for word in dico:
if all([c in mot for c in word]) and len(word)<=len(mot):
tree.add(word)#On ajoute uniquement les mots qui nous interressent
print("construction arbre :", time() - t)
return tree.searchAnaCompose(list(mot), tree,maxMot = n)
示例2: ChercheAnagramme
# 需要导入模块: from TreeNode import TreeNode [as 别名]
# 或者: from TreeNode.TreeNode import add [as 别名]
class ChercheAnagramme():
maxMot = -1
motRecherche = ""
occLettres = [0]*26 #Contient le nombre d'occurences de chaque lettre.
totalLettres = 0 #Contient le nombre de lettres restantes.
tree = TreeNode()
listeMot = [] #Pile utilisee pour stocker les mots de la solution actuelle
solution = [] #Liste de toutes les solutions trouvees
currentWord = [] #Stocke les lettres du mot que l'on est en train de trouver
premierMots = [] #Stocke les mots pouvant etre les premiers mots d'une solution
hashTable = HashTable()
solutionDecodee = []
def __init__(self, mot, maxMot,dico,hashTable):
'''
mot : le mot dont on souhaite trouver les anagrammes composes
maxMot: nombre maximum de mots dont les solutions peuvent etre composees
dico : la liste dans laquelle est stocke le dictionnaire
'''
self.motRecherche = mot
self.occLettres = [0]*26
self.totalLettres = 0
self.tree = TreeNode()
self.listeMot = []
self.solution = []
self.currentWord = []
self.hashTable = hashTable
self.solutionDecodee = []
self.maxMot = maxMot
self.premierMots = []
#Compte tous les caracteres pressents dans le mot
for char in mot :
self.occLettres[ord(char) - 65] += 1
self.totalLettres += 1
char = self.__bestChar__()
#Construit la liste de tous les mots pouvant apparaitre dans une solution
li = filter(self.__accepteMot__, dico)
#Construit l'arbre contenant tous les mots pouvant apparaitre dans une solution
for motPossible in li :
motPossible = list(motPossible)
motPossible.sort(key = util.frequence, reverse = True)
try:
#si le mot contient le caractere recherche alors il peut etre
#le premier mot d'une solution
if(motPossible.count(char) > 0):
self.premierMots.append("".join(motPossible))
except Exception as e:
pass
self.tree.add(motPossible)
self.premierMots = set(self.premierMots)
def __accepteMot__(self,mot):
'''
Retourne True si mot peut apparaitre dans un anagramme compose du mot
recherche
'''
if (len(mot) > len(self.motRecherche)):
return False
for char in mot :
if (mot.count(char) > self.motRecherche.count(char)):
return False
return True
def search(self):
'''
Realise la recherche des anagrammes composes du mot recherche
'''
#Initialise les variables de la classe
self.listeMot = []
self.solution = []
self.currentWord = []
for mot in self.premierMots:
for char in mot :
self.occLettres[ord(char) - 65] -= 1
self.totalLettres -= 1
if (self.totalLettres == 0):
#Si le mot est un anagramme du mot recherche
self.solution.append([mot])
else:
self.listeMot.append(mot)
self.__doSearch__(self.tree,self.__bestChar__())
self.listeMot.pop()
for char in mot :
self.occLettres[ord(char) - 65] += 1
self.totalLettres += 1
self.__decodeSol__()
return self.solutionDecodee
def __doSearch__(self,tree,char):
'''
Backtracking, recherche recursive des solutions
'''
if(self.totalLettres == 0):
#Si toutes les lettres ont ete utilisee, que l'on est a la fin d'un
#mot et que l'on a deja rencontre le caractere recherche on ajoute
#la solution actuelle a la liste des solutions
#.........这里部分代码省略.........