📅  最后修改于: 2023-12-03 14:58:26.418000             🧑  作者: Mango
这道题目是GATE-CS-2005年的第35题。
该题目要求编写一个程序,读取一个文本文件,并返回前n个出现频率最高的单词及其出现次数。
为了解决该题目,我们可以使用以下步骤:
下面是一个Python的示例程序,可以实现该算法。
def get_top_n_words(file_path, n):
# 读取文件内容
with open(file_path, 'r') as f:
text = f.read()
# 转换为单词列表
words = text.lower().split()
# 创建字典
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 排序字典
sorted_word_count = sorted(word_count.items(), key=lambda kv: kv[1], reverse=True)
# 获取前n个单词
top_n_words = []
for i in range(n):
top_n_words.append(sorted_word_count[i])
# 返回结果
return top_n_words
该函数使用了Python中的基本字符串操作和内置容器类型,通过逐步实现整个算法,最终实现了该算法的功能。
该题目考察了程序员的基本算法实现能力,包括文件读取、字符串处理、字典操作和列表排序等常见技术。如果熟练掌握这些技术,就能轻松实现该题目要求的功能了。