NYOJ 241题 字母统计

2024-06-11 15:58
文章标签 统计 字母 nyoj 241

本文主要是介绍NYOJ 241题 字母统计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最最开始的时候,想着用if,每个字母,每个字母地去统计,后来发现,速度太慢了,而且要写很多行,就像下面的:

 123456789
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include<stdio.h>
#include<string.h>
int main()
{int T;scanf("%d", &T);while(T --){char s[2000];char c;scanf("%s", s);int len, i, max = -1;len = strlen(s);for(i = 0; i < len; i ++){int a=b=c=d=e=f=g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z=0;if(s[i] == 'a'){a ++;if(a > max){max = a;c = 'a';}}else if(s[i] == 'b'){b ++;if(b > max){max = b;c = 'b';}}else if(s[i] == 'c'){c ++;if(c > max){max = c;c = 'c';}}else if(s[i] == 'd'){d ++;if(d > max){max = d;c = 'd';}}}}return 0;
}

后来又仔细想了想,换了个角度。

1.先给所有的字符排序;

2.利用每个字符与ASCII码的对应关系,用一个数组来记录每个字母的个数。a的下标代表字母的ASCII码,a[i]则代表字母的个数;

3.寻找里面个数最多的字母,用到了max(记录出现次数最多字母的个数),flag(记录出现次数最多字符的ASCII码)。

 123456789
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include<stdio.h>
#include<string.h>
int main()
{int T;scanf("%d", &T);int i, j;while(T --){char s[2000];scanf("%s", s);char c;int len;int a[123] = {0};len = strlen(s);for(i = 0; i < len - 1; i ++)//给字母排序;for(j = i; j < len; j ++)if(s[i] < s[j]){c = s[i];s[i] = s[j];s[j] = c;}int max = 0, flag;for(i = 97; i < 123; i ++)//分别找26个字母的个数;{for(j = 0; j < len; j ++){if(i == (s[j] + 0)){a[i] += 1;}}}for(i = 97; i < 123; i ++)//找26个字母中个数最多的;{if(a[i] > max){max = a[i];flag = i;//用flag记录下字母的ASCII码;}}printf("%c\n", flag);}return 0;
}

这篇关于NYOJ 241题 字母统计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051628

相关文章

opencv实现像素统计的示例代码

《opencv实现像素统计的示例代码》本文介绍了OpenCV中统计图像像素信息的常用方法和函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 统计像素值的基本信息2. 统计像素值的直方图3. 统计像素值的总和4. 统计非零像素的数量

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

hdu1496(用hash思想统计数目)

作为一个刚学hash的孩子,感觉这道题目很不错,灵活的运用的数组的下标。 解题步骤:如果用常规方法解,那么时间复杂度为O(n^4),肯定会超时,然后参考了网上的解题方法,将等式分成两个部分,a*x1^2+b*x2^2和c*x3^2+d*x4^2, 各自作为数组的下标,如果两部分相加为0,则满足等式; 代码如下: #include<iostream>#include<algorithm

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

hdu4267区间统计

题意:给一些数,有两种操作,一种是在[a,b] 区间内,对(i - a)% k == 0 的加value,另一种操作是询问某个位置的值。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import

hdu4417区间统计

给你一个数列{An},然后有m次查询,每次查询一段区间 [l,r] <= h 的值的个数。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamRead

hdu3333区间统计

题目大意:求一个区间内不重复数字的和,例如1 1 1 3,区间[1,4]的和为4。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

Python脚本:TXT文档行数统计

count = 0 #计数变量file_dirs = input('请输入您要统计的文件根路径:')filename = open(file_dirs,'r') #以只读方式打开文件file_contents = filename.read() #读取文档内容到file_contentsfor file_content in file_contents: