📜  门|门 IT 2008 |第 68 题(1)

📅  最后修改于: 2023-12-03 15:12:46.910000             🧑  作者: Mango

门|门 IT 2008 |第 68 题

本题目要求编写程序,统计一篇英文文章中出现次数最多的单词,输出该单词及出现次数。请注意,单词不区分大小写,且不含数字、标点、空格等其他非字母字符。

输入格式

输入一篇英文文章,文章长度不超过 1000 个单词。

输出格式

输出出现次数最多的单词及其出现次数,若有多个单词出现次数相同,输出其中任意一个。

样例输入
This is a test. That is OK. Test, test, test.
样例输出
test 3
解题思路
  1. 首先,需要将输入的文章转换成小写,以便统一处理单词。
  2. 然后,可以使用空格分割字符串,将文章拆成一个个单独的单词。
  3. 对于每个单词,需要去除其中的标点、数字等无用信息。
  4. 然后,用一个字典来记录每个单词出现的次数,并更新出现次数最多的单词。
  5. 最后,将出现次数最多的单词与其出现次数输出。
代码实现
def find_most_common_word(article):
    article = article.lower()  # 将文章转换成小写
    words = article.split()  # 分割字符串,拆成单词列表
    word_count = {}  # 统计单词出现次数的字典
    most_common_word = None  # 出现次数最多的单词
    for word in words:
        word = ''.join(filter(str.isalpha, word))  # 去除单词中的标点、数字等无用信息
        if word:
            word_count[word] = word_count.get(word, 0) + 1  # 统计单词出现次数
            if most_common_word is None or word_count[word] > word_count[most_common_word]:
                most_common_word = word  # 更新出现次数最多的单词
    output = f"{most_common_word} {word_count[most_common_word]}" if most_common_word else ""
    return output
注意事项

本题目中的代码片段为 Python 3 代码。如果使用其他编程语言,请自行修改代码。如果需要使用其他标准库,也需自行添加,并按相应的语言规范进行调用。