Trie树兄弟单词实例

Trie树趣味实例

如果一个单词,将其字母顺序重新排列可以生成另一个单词,则称这两个单词是兄弟单词。
如:”mary“ & ”army“
“cinema”&“iceman”
现在给定一个字典,用户输入一个单词,如何根据字典找出这个单词有哪些兄弟单词?要求时间和空间效率尽可能的高。

解决思路:

利用Trie树就可以妥善解决。
只需将上面的树节点增加一个vector< string >,构建树的时候,将每个单词在插入树之前先按字母序排序,如插入mary,先将mary变为:amry然后插入Trie树中,在到达最后一个字母节点时,在节点中的vector中存入mary即可。同理,如果插入army,也先将它排序变为amry,然后插入树中,到达最后一个字母节点时(和mary同一节点),将army也添加进vector中即可。

当用户查询单词时,先将用户输入的单词按字母序重排,然后查找Trie树,到达最后一个字母节点时只需变量vector并打印出所有的单词即可。
(当然还有其他方法,如hash_map等)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值