前天收到了百度笔试的通知,急忙看看以往百度笔试题,发现很多数据结构和算法的题,学好数据结构很重要!其中一题兄弟单词(类似bac的兄弟单词有abc,cba等等)的数据结构和查询流程
第一想法是:将给定单词全排列后在字典里比对是否为兄弟单词,然后用一个列表存储起来
网上找了一些资料才发现果真没有想到太多的东西,起码在效率和复杂度上没有考虑到:
比较好的解决方案是找到兄弟单词的唯一key值(按字母顺序排列、每个字母规定一个质数然后相乘等等),先将字典中的单词按key值全部分类用一个列表存储(磨刀不误砍柴功),之后将key值—-对应兄弟单词列表的开始地址分别当做key—-value存储到hashmap中,之后再找兄弟单词的值就很方便了!