zoukankan      html  css  js  c++  java
  • 如何找出字典中的兄弟单词



    给定一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的兄弟单词。现在给定一个字典,用户输入一个单词,如何根据字典找出这个单词有多少个兄弟单词?


    答案: 
    使用hash_map和链表。 
    首先定义一个key,使得兄弟单词有相同的key,不是兄弟的单词有不同的key。例如,将单词按字母从小到大重新排序后作为其key,比如bad的key为abd,good的key为dgoo。 
    使用链表将所有兄弟单词串在一起,hash_map的key为单词的key,value为链表的起始地址。 
    开始时,先遍历字典,将每个单词都按照key加入到对应的链表当中。当需要找兄弟单词时,只需求取这个单词的key,然后到hash_map中找到对应的链表即可。 
    这样创建hash_map时时间复杂度为O(n),查找兄弟单词时时间复杂度是O(1)。

  • 相关阅读:
    事件记录
    C++和extern C
    中断控制器
    NAND FLASH控制器
    MMU实验
    存储管理器实验
    GPIO实验
    linux与Windows使用编译区别及makefile文件编写
    ubuntu如何为获得root权限
    VI常用命令及linux下软件
  • 原文地址:https://www.cnblogs.com/phoenixzq/p/2238072.html
Copyright © 2011-2022 走看看