<prompt> Tengeneza muundo wa data unaoruhusu kuongeza maneno mapya na kutafuta ikiwa mfuatano unalingana na mfuatano wowote ulioongezwa hapo awali.Tekeleza darasa la WordDictionary: WordDictionary Huanzisha kitu. utupu addWordneno Huongeza neno kwenye muundo wa data, inaweza kulinganishwa baadaye. tafuta boolneno Hurejesha kweli ikiwa kuna mfuatano wowote katika muundo wa data unaolingana na neno au uongo vinginevyo. neno linaweza kuwa na vitone . ambapo vitone vinaweza kulinganishwa na herufi yoyote.Mfano:Ingizo WordDictionary , addWord , addWord , addWord , search , search , search , search , mbaya , baba , wazimu , pedi , mbaya , .tangazo , b.. Patonull,null,null,null,uongo,kweli,kweli,kweliUfafanuziWordDictionary wordDictionary new WordDictionary;wordDictionary.addWordmbaya;wordDictionary.addWordbaba;wordDictionary.addWord wazimu;wordDictionary.search pedi; kurudi UongowordDictionary.search mbaya; kurudi KwelinenoDictionary.search .tangazo; kurudi KwelinenoDictionary.search b..; kurudi KweliVikwazo: 1 neno.urefu 25 neno katika addWord linajumuisha herufi ndogo za Kiingereza. neno katika tafuta linajumuisha . au herufi ndogo za Kiingereza. Kutakuwa na zaidi ya vitone 2 katika neno kwa hoja za tafuta. Angalau zaidi simu 104 zitapigiwa addWord na search.  <response>: chatudarasa la TrieNode: def __init__binafsi: self.children Hakuna 26 nafsi.ni_neno Si kwelidarasa NenoKamusi: def __init__binafsi: self.root TrieNode def addWordbinafsi, neno: str - Hakuna: sasa self.mizizi kwa c kwa neno: index ordc - orda ikiwa current.childrenindex is None: current.childrenindex TrieNode sasa current.childrenindex sasa.ni_neno Kweli def tafuta binafsi, neno: str - bool: return self._search_helperself.root, word, 0 def _search_helperbinafsi, nodi: TrieNode, neno: str, index: int - bool: ikiwa index lenneno: nodi ya kurudi.ni_neno ikiwa nenoindex .: kwa nodi_ya_toto katika nodi.children: ikiwa nodi_ya_kitoto si Hakuna na yenyewe._search_helpernodi_ya_mtoto, neno, faharasa 1: kurudi Kweli kurudi Uongo kwingine: child_nodi nodi.childrenordnenoindex - orda ikiwa nodi ya mtoto ni Hakuna: kurudi Uongo return self._search_helpernodi_ya_mtoto, neno, faharasa 1maelezoTunatumia muundo wa data ya Trie kuhifadhi maneno. Kila nodi ya Trie ina safu ya viashiria vya watoto kwa herufi ndogo zote za Kiingereza ukubwa wa 26 na bendera ya boolean ni_neno inayoonyesha ikiwa neno hilo linaishia kwenye nodi hii. Hapo awali, viashiria vyote vya watoto vimewekwa kuwa batili, na ni_neno imewekwa kuwa sivyo.Tunapoongeza neno, tunapitia Trie, na kuunda nodi mpya za watoto ikihitajika, na kuweka is_word kuwa kweli kwa nodi ya Trie ya mwisho inayowakilisha herufi ya mwisho ya neno.Tunapotafuta neno, tunatumia kitendakazi cha msaidizi ambacho huchukua nodi ya sasa ya Trie, neno, na nafasi ya sasa katika neno. Ikiwa herufi ya sasa katika neno ni kitone ., tunatafuta herufi yoyote inayolingana kwa kurudia kupitia watoto wake wote, tukiita kitendakazi cha kisaidizi kwa kujirudia na nafasi inayofuata katika neno. Ikiwa herufi ya sasa katika neno ni herufi ndogo, tunaendelea kwa nodi ya mtoto inayolingana na kuendelea na utaftaji.Wakati wowote, tukifika mwisho wa neno, tunaangalia kama ni_neno la nodi ya sasa ya Trie ni kweli. Ikiwa ni, tumepata mechi. Vinginevyo, utafutaji unaendelea. 