首页 > 试题广场 >

单词识别

[编程题]单词识别
  • 热度指数:16437 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入一个英文句子,把句子中的单词(不区分大小写)按出现次数按从多到少把单词和次数在屏幕上输出来,次数一样的按照单词小写的字典序排序输出,要求能识别英文单词和句号

输入描述:
输入为一行,由若干个单词和句号组成


输出描述:
输出格式参见样例。
示例1

输入

A blockhouse is a small castle that has four openings through which to shoot.

输出

a:2
blockhouse:1
castle:1
four:1
has:1
is:1
openings:1
shoot:1
small:1
that:1
through:1
to:1
which:1
import re
str1 = input('')
str1 = str1.lower()
pattern = r'[,.\s]'
s_split = re.split(pattern, str1)
list1 = list(filter(None, s_split))
vs=[]
for index,value in enumerate(list1):
    number = 0
    for i in vs:
        if i == value:
            number = 1
    if number ==  0 :
        vs.append(value)

for i in sorted(vs):
    print('%s:%s'%(i,list1.count(i)))

发表于 2019-05-13 18:55:17 回复(0)
测试输出不对 可以参考我的代码和题干一样但是通过不了
a=input()
b=a.lower().replace(',',' ').replace('.',' ').split()
dict={}
for i in b:
    dict[i]=dict.get(i,0)+1
for j in sorted(dict.items(),key=lambda x:x[0],reverse=True):
    print("%s:%s"%(j[0],j[1]))


发表于 2019-03-22 12:57:12 回复(3)