试题 算法提高 统计单词数

试题 算法提高 统计单词数(字符串)


问题描述
  统计输入英文文章段落中不同单词(单词有大小写之分,  但统计时忽略大小写)各自出现的次数。 输入段落中所含单词的总数不超过100,最长单词的长度不超过20个字母.
输入格式
  一个包含若干句子的段落, 每个句子由若干英文单词组成. 除空格,  逗号和句号外, 这些输入的句子中不含其他非字母字符, 并且, 逗号和句号紧跟在它前面的英文单词后面, 中间没有空格. 段落最后一个字符是回车符,  表示输入结束.
输出格式
  若段落中共有M个不同的英文单词,则按照其在段落中出现的先后顺序输出M行,各行的格式为:  单词中所有字母均用大写形式输出(最长的单词顶格输出,它前面没有多余的空格;  其余单词与其右对齐)+冒号+N个*号+该单词在段落中的出现次数N
样例输入
This is a test. This test is easy. This is a test. This test is easy.

样例输出

THIS:****4
IS:****4
A:**2
TEST:****4
EASY:**2

思路:
本题就是统计单词数,题中说不需要统计逗号和冒号,那我们只需要把他替换了就好了,然后在用字典统计词语,上面的输出要求是(最长的单词顶格输出,它前面没有多余的空格;  其余单词与其右对齐)+冒号+N个*号+该单词在段落中的出现次数N,所有我们先找出最长的那个单词,然后在用format语句来完成上面的输出要求。
程序:

a=input()
a=a.replace(".","")
a=a.replace(",","")#去逗号及句号
a=a.split(" ")#分词
d={}
for i in a:
    i=i.upper()
    d[i]=d.get(i,0)+1  #统计单词数
b=0
for i in d:
    c=len(i)
    if c>b:
        b=c  #找到最长的单词
for i in d:
    print("{:>{:}}{:}".format(i,b,":"+d[i]*"*"+str(d[i])))  #输出单词及向右对齐b长度然后输出d[i]的*号和出现的次数

禁止转载。仅用于自己学习。对程序错误不负责。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,017评论 17 410
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,434评论 0 5
  • 第九章:自然语言处理 * 9.1语言模型的背景知识 * 9.1.1语言模型简介 * 9.1.2语言模型的评...
    emm_simon阅读 318评论 0 0
  • # css: > 1. 学会使用CSS选择器 > 2. 熟记CSS样式和外观属性 > 3. 熟练掌握CSS各种选择...
    欣简书阅读 155评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,588评论 1 45