zoukankan      html  css  js  c++  java
  • 程序员面试金典-面试题 16.02. 单词频率

    题目:

    设计一个方法,找出任意指定单词在一本书中的出现频率。

    你的实现应该支持如下操作:

    WordsFrequency(book)构造函数,参数为字符串数组构成的一本书
    get(word)查询指定单词在数中出现的频率
    示例:

    WordsFrequency wordsFrequency = new WordsFrequency({"i", "have", "an", "apple", "he", "have", "a", "pen"});
    wordsFrequency.get("you"); //返回0,"you"没有出现过
    wordsFrequency.get("have"); //返回2,"have"出现2次
    wordsFrequency.get("an"); //返回1
    wordsFrequency.get("apple"); //返回1
    wordsFrequency.get("pen"); //返回1
    提示:

    book[i]中只包含小写字母
    1 <= book.length <= 100000
    1 <= book[i].length <= 10
    get函数的调用次数不会超过100000

    分析:

    利用HashMap存储book出现的频次即可。

    程序:

    class WordsFrequency {
    
        public WordsFrequency(String[] book) {
            dict = new HashMap<>();
            for(String bookName:book){
                int freq = dict.getOrDefault(bookName, 0) + 1;
                dict.put(bookName, freq);
            }
        }
        
        public int get(String word) {
            return dict.getOrDefault(word, 0);
        }
        private HashMap<String, Integer> dict;
    }
    
    /**
     * Your WordsFrequency object will be instantiated and called as such:
     * WordsFrequency obj = new WordsFrequency(book);
     * int param_1 = obj.get(word);
     */
  • 相关阅读:
    有用学习网址
    Pivot运算符用于在列和行之间
    st_MES_InsertIntoSalaryManage
    I00033 消除游戏
    I00033 消除游戏
    PHP版本的Graphviz样例之集群流程图
    PHP版本的Graphviz样例之集群流程图
    Graphviz样例之集群流程图
    Graphviz样例之集群流程图
    Graphviz样例之UML图
  • 原文地址:https://www.cnblogs.com/silentteller/p/12491616.html
Copyright © 2011-2022 走看看