计算字母频率的最佳数据结构?
Best data structure to count letter frequencies?
任务:
本文档中所有单词中最常见的第一个字母是什么?
-unweighted(无论出现多少次,只计算一次)
-加权(每出现一次单独算一个词)
给定长度的文档中最常见的单词是什么?
我正在考虑使用哈希图来计算最常见的首字母。但是我应该对未加权和加权的都使用哈希图吗?
对于给定长度的最常见单词(例如 5),我可以使用更简单的东西,例如数组列表吗?
对于未加权的,您需要一个散列 table 来跟踪您已经看过的单词,以及一个散列映射来计算第一个字母的出现次数。也就是你需要这样写:
if words_seen does not contain word
add word to words seen
update hash map with first letter of word
end-if
对于加权,你不需要那个散列table,因为你不关心这个词出现了多少次。所以你可以写:
update hash map with first letter of word
对于最常见的单词,您需要一个哈希映射来跟踪您看到的所有独特单词,以及您看到该单词的次数。扫描整个文档后,遍历该哈希映射以确定最常见的具有所需长度的映射。
您可能不想为最后一个任务使用数组列表,因为您想要计算出现次数。如果您使用数组列表,那么在扫描整个文档后,您必须对该列表进行排序并计算频率。这将比仅使用哈希映射需要更多的内存和更多的时间。
任务:
本文档中所有单词中最常见的第一个字母是什么?
-unweighted(无论出现多少次,只计算一次)
-加权(每出现一次单独算一个词)
给定长度的文档中最常见的单词是什么?
我正在考虑使用哈希图来计算最常见的首字母。但是我应该对未加权和加权的都使用哈希图吗?
对于给定长度的最常见单词(例如 5),我可以使用更简单的东西,例如数组列表吗?
对于未加权的,您需要一个散列 table 来跟踪您已经看过的单词,以及一个散列映射来计算第一个字母的出现次数。也就是你需要这样写:
if words_seen does not contain word
add word to words seen
update hash map with first letter of word
end-if
对于加权,你不需要那个散列table,因为你不关心这个词出现了多少次。所以你可以写:
update hash map with first letter of word
对于最常见的单词,您需要一个哈希映射来跟踪您看到的所有独特单词,以及您看到该单词的次数。扫描整个文档后,遍历该哈希映射以确定最常见的具有所需长度的映射。
您可能不想为最后一个任务使用数组列表,因为您想要计算出现次数。如果您使用数组列表,那么在扫描整个文档后,您必须对该列表进行排序并计算频率。这将比仅使用哈希映射需要更多的内存和更多的时间。