python给定一个由英文字符、数字、空格和英文标点符号组成的字符串,长度不超过5000,请将其切分为单词,要求去掉所有的非英文字母,然后将单词全部转换成小写,然后统计每一个词出现的次数,输出频次最高的那个词以及它出现的次数。如果有多个词的频次相同,则输出按字典序排列在最前面的那个。 例如给定字符串:String input = “1 fish 2 fish red fish blue fish”; 频次最高的单词是fish,它出现了4次。 再比如给定字符串:If the digit is less than 10, then ‘0’ + digit is returned. Otherwise, the value ‘a’ + digit - 10 is returned. 频次最高的单词是digit和is,都出现了3次。但是digit的字典序在is前面,所以应该输出digit和3。 格式 输入格式 一个长度不超过2000的字符串,只有末尾有回车符。 输出格式 输出一行,首先是频次最高的那个单词,然后是它出现的次数,中间用空格分隔
时间: 2024-03-10 21:46:20 浏览: 228
以下是Python实现代码:
```python
input_str = input().strip()
# 去掉非英文字母
words = [w.lower() for w in input_str if w.isalpha() or w.isspace()]
# 将字符串转换为单词列表
words = ''.join(words).split()
# 统计每个单词出现的频次
word_count = {}
for w in words:
if w in word_count:
word_count[w] += 1
else:
word_count[w] = 1
# 找到出现频次最高的单词
max_count = 0
max_word = ''
for w, count in word_count.items():
if count > max_count or (count == max_count and w < max_word):
max_count = count
max_word = w
# 输出结果
print(max_word, max_count)
```
输入示例:
```
1 fish 2 fish red fish blue fish
```
输出示例:
```
fish 4
```
阅读全文