📅  最后修改于: 2023-12-03 15:23:04.289000             🧑  作者: Mango
这是一道关于字符串处理的问题。
题目要求统计一个字符串中每个单词出现的次数。
一个字符串,由不超过1000个大小写英文字母和空格组成。
每行输出一个单词及其出现的次数,格式为单词: 出现次数
。
This is a sample input to test the solution.
This: 1
is: 1
a: 1
sample: 1
input: 1
to: 1
test: 1
the: 1
solution.: 1
可以考虑使用哈希表来存储单词和对应的出现次数。
遍历整个字符串,从左至右,使用两个指针i和j,分别指向单词的首尾位置。
对于每个单词,可以使用一个函数来判断是否合法(只包含大小写英文字母),如果合法,则将该单词加入哈希表中,并且对应的出现次数加1。
最后遍历哈希表,输出每个单词及其出现次数。
def count_words(s):
words = {}
i = 0
n = len(s)
while i < n:
# 找到单词的第一个字符
while i < n and not s[i].isalpha():
i += 1
j = i
# 找到单词的最后一个字符
while j < n and s[j].isalpha():
j += 1
# 如果找到了一个单词,加入哈希表中
if i < j:
word = s[i:j].lower()
if word in words:
words[word] += 1
else:
words[word] = 1
i = j
# 输出哈希表中的单词及其出现次数
for word, count in words.items():
print(word + ': ' + str(count))
s = input()
count_words(s)
使用python实现。