当前位置: 首页>>代码示例>>Python>>正文


Python TreeNode.add方法代码示例

本文整理汇总了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)
开发者ID:LucasRoig,项目名称:Anagrammes,代码行数:13,代码来源:Main.py

示例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
#.........这里部分代码省略.........
开发者ID:LucasRoig,项目名称:Anagrammes,代码行数:103,代码来源:ChercheAnagramme.py


注:本文中的TreeNode.TreeNode.add方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。