openjudge 计算概论 字符串1:统计字符数
来源:互联网 发布:麦当劳 知乎 编辑:程序博客网 时间:2024/05/16 19:15
1:统计字符数
查看 提交 统计 提问
总时间限制: 1000ms 内存限制: 65536kB
描述
判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多
输入
第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串
每组测试数据之间有一个空行,每行数据不超过1000个字符且非空
输出
n行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格。
如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符
样例输入
2
abbccc
adfadffasdf
样例输出
查看 提交 统计 提问
总时间限制: 1000ms 内存限制: 65536kB
描述
判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多
输入
第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串
每组测试数据之间有一个空行,每行数据不超过1000个字符且非空
输出
n行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格。
如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符
样例输入
2
abbccc
adfadffasdf
样例输出
c 3
f 4
方法:初始化一个26字母数组alph[27],和一个count[27]记录每个字母出现次数,字符串与字母表一一匹配,
#include <stdio.h>#include <stdlib.h>#include<string.h>int main(){ char alph[27],a[1100]; int i,j,count[27],max,n,h; scanf("%d",&n); getchar(); for(h=0; h<n; h++) { //memset(count,0,sizeof(count)); for(i=0; i<26; i++) { alph[i]=97+i; count[i]=0; } alph[i]='\0'; //puts(alph); gets(a); for(i=0; a[i]!='\0'; i++) for(j=0; j<26; j++) { if(alph[j]==a[i]) count[j]++; } //for(i=0; i<26; i++) //printf("%c %d\n",alph[i],count[i]); max=0; for(i=1; i<26; i++) if(count[max]<count[i]) max=i; if(count[max]!=0) printf("%c %d\n",alph[max],count[max]); else h--;//如果没有输入,enter之后也会有输出 a ,因为初始化是零,所以要加一个h--。 } return 0;}
改进版:用数字代替字母,字符串中的字母减去'a',sum[str[i] - 'a'] ++,得到所有字母的次数
#include <stdio.h>#include <string.h>int main(){ int cases,sum[26],i,max; char str[1001]; scanf("%d",&cases); while(cases--) { scanf("%s",str); //for(i = 0; i < 26; i++) sum[i] = 0; memset(sum,0,sizeof(int)*26); max = 0; for(i = 0; i < strlen(str); i++) { sum[str[i] - 'a'] ++; //if(sum[str[i] - 'a'] > sum[max]) max = str[i] - 'a'; } for(i = 0; i < 26; i++) { if(sum[i] > sum[max]) max = i; } printf("%c %d\n",max + 'a',sum[max]); } return 0;}
0 0
- openjudge 计算概论 字符串1:统计字符数
- openjudge 计算概论 字符串 5:单词排序
- openjudge 计算概论 函数与字符串练习(1)2:字符串排序
- openjudge 计算概论 字符串6:字符串最大跨距
- 【openjudge 计算概论(A)】[函数与字符串练习(1)]
- openjudge 计算概论 字符串 2:单词倒排
- openjudge 计算概论 字符串 3:过滤多余的空格
- openjudge 计算概论 字符串 4:最长单词2
- 【openjudge 计算概论(A)】[编程练习(字符串)]
- 字符串字符数统计
- 【openjudge 计算概论(A)】[函数递归练习(1)]
- 【openjudge 计算概论(A)】[基础编程练习1]
- 字符串部分--统计字符数
- 字符串处理-统计字符数
- 【openjudge 计算概论(A)】[ 函数与字符串练习(2)]
- openjudge 计算概论-数组练习-错误侦测
- openjudge 计算概论-数组练习-距离排序
- 【openjudge 计算概论(A)】[指针练习]
- openjudge 计算概论 函数与字符串练习(1)2:字符串排序
- 出现Note: Test.java uses unchecked or unsafe operations.Note: Recompile
- 九度oj 题目1447:最短路
- [模拟]Perfect Hash UVA188
- “add measurements”(添加度量)菜单问题
- openjudge 计算概论 字符串1:统计字符数
- java.util.Stack创建栈
- 基于 RBAC 的 Web Security Framework 的研究与应用
- VS2010中使用Modeling Project定制DSL以及自动化代码生成
- 音速启动(VStart)中使用相对路径存储应用链接
- 微信调用接口,防止Access_token过期的方法
- Delphi6-xe5 中的MD5实现方法
- eclipse 打开已有的项目
- 解决android SDK 打不开的方法(WIN8 64bit)