如果乙個單詞,將其字母順序重新排列可以生成另乙個單詞,則稱這兩個單詞是兄弟單詞。
如:」mary「 & 」army「
「cinema」&「iceman」
現在給定乙個字典,使用者輸入乙個單詞,如何根據字典找出這個單詞有哪些兄弟單詞?要求時間和空間效率盡可能的高。
利用trie樹就可以妥善解決。
只需將上面的樹節點增加乙個vector< string >,構建樹的時候,將每個單詞在插入樹之前先按字母序排序,如插入mary,先將mary變為:amry然後插入trie樹中,在到達最後乙個字母節點時,在節點中的vector中存入mary即可。同理,如果插入army,也先將它排序變為amry,然後插入樹中,到達最後乙個字母節點時(和mary同一節點),將army也新增進vector中即可。
當使用者查詢單詞時,先將使用者輸入的單詞按字母序重排,然後查詢trie樹,到達最後乙個字母節點時只需變數vector並列印出所有的單詞即可。
(當然還有其他方法,如hash_map等)
Trie 單詞查詢樹
l 簡介 trie 又稱單詞查詢樹 字首樹,是一種雜湊樹的變種。應用於字串的統計與排序,經常被搜尋引擎系統用於文字詞頻統計。含有單詞 tea tree a zsu 的一棵trie l性質 n根節點不包含字元,除根節點外的每乙個節點都只包含乙個字元。n從根節點到某一節點,路徑上經過的字元連線起來,為該...
Trie 單詞查詢樹
l 簡介 trie 又稱單詞查詢樹 字首樹,是一種雜湊樹的變種。應用於字串的統計與排序,經常被搜尋引擎系統用於文字詞頻統計。含有單詞 tea tree a zsu 的一棵trie l性質n 根節點不包含字元,除根節點外的每乙個節點都只包含乙個字元。n 從根節點到某一節點,路徑上經過的字元連線起來,為...
Trie樹(單詞查詢樹)
前言 tire樹,又稱之為字典樹或者單詞查詢樹。是一種樹形結構,是雜湊樹的變種。典型應用是用於統計 排序或儲存大量的字串 不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻的統計。因為相同的字串字首會共享同一條分支,所以優點是可以利用不同字串的相同字首來減少無謂的字串比較,查詢效率比hash表 has...