Trie树兄弟单词实例
2015-08-03 16:29
344 查看
Trie树趣味实例
如果一个单词,将其字母顺序重新排列可以生成另一个单词,则称这两个单词是兄弟单词。如:”mary“ & ”army“
“cinema”&“iceman”
现在给定一个字典,用户输入一个单词,如何根据字典找出这个单词有哪些兄弟单词?要求时间和空间效率尽可能的高。
解决思路:
利用Trie树就可以妥善解决。只需将上面的树节点增加一个vector< string >,构建树的时候,将每个单词在插入树之前先按字母序排序,如插入mary,先将mary变为:amry然后插入Trie树中,在到达最后一个字母节点时,在节点中的vector中存入mary即可。同理,如果插入army,也先将它排序变为amry,然后插入树中,到达最后一个字母节点时(和mary同一节点),将army也添加进vector中即可。
当用户查询单词时,先将用户输入的单词按字母序重排,然后查找Trie树,到达最后一个字母节点时只需变量vector并打印出所有的单词即可。
(当然还有其他方法,如hash_map等)
相关文章推荐
- LeetCode(33)(81) Search in Rotated Sorted Array I II
- AFNetworking 2.5
- N皇后问题2
- C++中this指针的用法详解
- hdu1969 pie【二分】
- HDU - 2955 Robberies
- 二维码zxing源码分析(四)wifi部分
- Oracle锁表数据查询及解决方法
- Android 自定义ListView控件,滑动删除
- javaScript 里的Date格式化
- Linux端口处理
- [编程题]A+B和C (15)
- RPC深入浅出
- 字符串的输入与输出
- UML学习
- hdu 1540
- android给其他App发送简单的数据
- JavaSrcipt快速入门(二)(2015.8.3)
- UVA725-Division
- 二分查找组件