📜  门| GATE-CS-2005 |第 35 题(1)

📅  最后修改于: 2023-12-03 14:58:26.418000             🧑  作者: Mango

题目介绍

这道题目是GATE-CS-2005年的第35题。

该题目要求编写一个程序,读取一个文本文件,并返回前n个出现频率最高的单词及其出现次数。

解题思路

为了解决该题目,我们可以使用以下步骤:

  1. 读取文本文件并将其内容存储在一个字符串中。
  2. 将字符串转换为单词的列表。
  3. 为单词列表创建一个字典,并使用单词作为键,出现次数作为值。
  4. 排序字典逆序,根据出现次数查找前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中的基本字符串操作和内置容器类型,通过逐步实现整个算法,最终实现了该算法的功能。

总结

该题目考察了程序员的基本算法实现能力,包括文件读取、字符串处理、字典操作和列表排序等常见技术。如果熟练掌握这些技术,就能轻松实现该题目要求的功能了。