栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从字典中找到单词变位词的最佳算法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从字典中找到单词变位词的最佳算法

您按字母顺序对每个单词中的字符进行排序,以在映射中形成键,该映射的值是该键的单词列表。

当给您一个单词来查找字谜时,您可以按字母顺序对该单词中的字符进行排序,然后在地图中进行查找。

从您的示例并添加单词POOL,您将获得:

LOOP -> [LOOP, POOL, POLO]OPST -> [STOP, POST]

Java代码类似于:

public class AnagramGenerator{  private Map<String, Collection<String>> indexedDictionary;  public AnagramGenerator(List<String> dictionary)  {    this.indexedDictionary = index(dictionary);  }  public Collection<String> getAnagrams(String word)  {    return indexedDictionary.get(sort(word));  }  private Map<String, Collection<String>> index(List<String> dictionary)  {    MultiMap<String, String> indexedDictionary = HashMultimap.create();    for (String word : dictionary)    {      indexDictionary.put(sort(word), word);    }    return indexedDictionary.asMap();  }  private String sort(String word)   {    List<Character> sortedCharacters= Arrays.asList(word.toCharArray());    Collections.sort(sortedCharacters);    StringBuilder builder = new StringBuilder();    for (Character character : sortedCharacters)    {      builder.append(character);    }    return builder.toString();  }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392365.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号