当前位置: 首页 > news >正文

[1525]字符统计2 (哈希)SDUT



字符统计2

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

输入英文句子,输出该句子中除了空格外出现次数最多的字符及其出现的次数。

输入

输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。

输出

逐行输出每个句子中出现次数最多的字符及其出现的次数(如果有多个字符的次数相同,只输出ASCII码最小的字

符)。

示例输入

I am a student
a good programming problem
ABCD abcd ABCD abcd

示例输出

a 2
o 4
A 2

本题思路:先将输入的句子中字母字符记录到数组a中(哈希),再找出数组a中最大的数并记录下标,若有与最大数相等的输出ASCLL码小的。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
    char str[110];//记录英文句子
    int a[55];
    int len;
    int i,j,w;
    int ma;
    while(gets(str))
    {
        ma=0;
        memset(a,0,sizeof(a));
        len=strlen(str);
        for(i=0;i<len;i++)
        {
            if(str[i]>='A'&&str[i]<='Z')//‘A’到‘Z’对应a[0]到a[25]
            {
                w=str[i]-'A';
                a[w]++;
            }
            if(str[i]>='a'&&str[i]<='z')//‘a’到‘z’对应a[26]到a[51]
            {
                w=str[i]-'a'+26;
                a[w]++;
            }
        }
        for(i=0;i<52;i++)
        {
            if(a[i]>ma)//若a[i]的数值大于ma的数值,ma=a[i],记录下标
            {
                ma=a[i];
                j=i;
            }
            if(a[i]==ma)//若a[i]的数值与ma的数值相等,记录小的下标
            {
                if(i<j)
                   j=i;
            }
        }
        if(j>=26)//若下标比25大则输出小写字母,否则输出大写字母
            printf("%c %d\n",'a'+j-26,ma);
        else
            printf("%c %d\n",'A'+j,ma);
    }
    return 0;
}

转载于:https://www.cnblogs.com/jiangyongy/p/3971639.html

相关文章:

  • 磁盘阵列RAID原理、种类及性能优缺点对比
  • 桥接模式
  • 记录一下第一次使用npm
  • 从头学Android系列
  • android linker
  • c++中输入输出流详解
  • JavaScript学习笔记(一)
  • 关于GRUB2
  • 演化理解 Android 异步加载图片
  • 棋牌游戏服务器架构: 总体设计
  • Python操作MySQL以及中文乱码的问题
  • Linux常用命令1
  • 图像增强---中值滤波
  • Exchange 2013 为DAG添加成员服务器,遇到的几个问题解决方法
  • [python] 之 装饰器
  • .pyc 想到的一些问题
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Go 语言编译器的 //go: 详解
  • jquery ajax学习笔记
  • Odoo domain写法及运用
  • oschina
  • SQLServer之索引简介
  • windows下使用nginx调试简介
  • 从0实现一个tiny react(三)生命周期
  • 分布式事物理论与实践
  • 给新手的新浪微博 SDK 集成教程【一】
  • 前嗅ForeSpider教程:创建模板
  • 如何优雅地使用 Sublime Text
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 栈实现走出迷宫(C++)
  • 追踪解析 FutureTask 源码
  • 积累各种好的链接
  • 进程与线程(三)——进程/线程间通信
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​批处理文件中的errorlevel用法
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #if #elif #endif
  • #pragma pack(1)
  • (003)SlickEdit Unity的补全
  • (C)一些题4
  • (floyd+补集) poj 3275
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (一)80c52学习之旅-起始篇
  • (一)Neo4j下载安装以及初次使用
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转载)(官方)UE4--图像编程----着色器开发
  • ******之网络***——物理***
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .net Stream篇(六)
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout