首页 > 试题广场 >

词频统计

[编程题]词频统计
  • 热度指数:7490 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

给定一个string数组article及其大小n及一个待统计单词word,请返回该单词在数组中出现的频数。文章的词数在1000以内。

import java.util.*;

public class Frequency {
    public int getFrequency(String[] article, int n, String word) {
        // write code here
    	HashMap<String, Integer> count = new HashMap<> ();
    	
    	for (int i = 0; i < n; i++) {
    		String k = article[i];
    		
    		if (count.containsKey(k)) {
    			
    			count.replace(k, count.get(k) +  1);
    			
    		}else {
    			
    			count.put(k, 1);
    			
    		}
    	}
    	
    	if (count.containsKey(word)) {
    		
    		return count.get(word);
    		
    	}else {
    		return 0;
    	}
    }
}

发表于 2019-12-13 23:23:01 回复(0)
easy!
发表于 2018-09-09 18:45:02 回复(0)
import java.util.*;

public class Frequency {
    public int getFrequency(String[] article, int n, String word) {
        // write code here
        int count = 0;
        for (int i = 0; i < n; i++) {
            if (word.equals(article[i])) {
                count++;
            }
        }
        return count;
    }
}
发表于 2018-05-01 13:50:19 回复(0)
import java.util.*;

public class Frequency {
    public int getFrequency(String[] article, int n, String word) {
        // write code here
        int num=0;
        for(int i=0;i<n;i++)
        {
            if(article[i].equals(word))
            {
                num++;
            }
        }
        return num;
    }
}
发表于 2017-11-15 20:07:27 回复(0)
题目情景确实不好
import java.util.*;

public class Frequency {
    public int getFrequency(String[] article, int n, String word) {
        // write code here
        int count=0;
        for(int i=0;i<article.length;i++){
            if(article[i].compareTo(word)==0) count++;
        }
        return count;
    }
}
发表于 2017-06-15 10:43:47 回复(0)
Java非递归实现的Trie树:

import java.util.*;

public class Frequency {
    public int getFrequency(String[] article, int n, String word) {
        TrieNode root = new TrieNode();
		for (int i = 0; i < n; i ++) {
            root.insert(article[i]);
        }
        
        TrieNode p = root.search(word);
        if (p == null) {
            return 0;
        } else {
            return p.cnt;
        }
    }
    
    public static class TrieNode {
        public TrieNode[] son;
        public int cnt;
        
        public TrieNode() {
            this.son = new TrieNode[26];
            this.cnt = 0;
        }
        
        public void insert(String word) {
            if (word == null || word.length() == 0) {
                return;
            }
            
            TrieNode p = this;
            for (int i = 0, len = word.length(); i < len; i++) {
                int loc = word.charAt(i) - 'a';
                if (p.son[loc] == null) {
                    p.son[loc] = new TrieNode();
                }
                p = p.son[loc];
            }
            p.cnt++;
        }
        
        public TrieNode search(String word) {
            if (word == null || word.length() == 0) {
                return null;
            }
            
            TrieNode p = this;
            for (int i = 0, len = word.length(); i < len; i++) {
                int loc = word.charAt(i) - 'a';
                if (p.son[loc] == null) {
                    return null;
                }
                p = p.son[loc];
            }
            return p;
        }
    }
}

发表于 2017-03-28 11:04:00 回复(0)
import java.util.*;

public class Frequency {
    public int getFrequency(String[] article, int n, String word) {
        // write code here
        int count = 0;
        for(int i = 0; i < n; i++){
            if(article[i].equals(word))
                count++;
        }
        return count;
    }
}

发表于 2016-08-19 17:32:48 回复(0)

问题信息

难度:
7条回答 21291浏览

热门推荐

通过挑战的用户

查看代码