首页 > 其他 > 详细

JLH统计法统计飞龙

时间:2020-05-02 12:17:44      阅读:72      评论:0      收藏:0      [点我收藏+]

问题:

         给你一串字符串由“A-Z”组成代表不同类型的飞龙。比如“BCABCA”,你需要以JHL统计法来统计下每个字母的数量,即输出每个字母的数量在这个字母之前,比如答案为“2A2B2C”。(答案按照字典序输出,即答案不能为2B2C2A)。

输入:

        第一行输入一个T(T<=500)表明有T组测试样例,在每个测试样例中,输入一个字符串,不超过1000个字母,保证都为大写字母。

输出:

         对于每个测试样例,输出占一行,按上文描述输出结果。

例如:

         输入: 1                      输出:2A2B2C

                     ABCABC

代码:

#include <stdio.h>

void main()
{
	int i,t;
	char str[1000];
	scanf("%d",&t);
	while(t--)
	{
		int a[100]={0};
		scanf("%s",str);
		for(i=0;i<strlen(str);i++)
		{
			a[str[i]-‘A‘]++;
			//str[i]-‘A‘是把字母转换成数字,在数组a中储存起来,如str[i]=C
			//则 str[i]-‘A‘=2;a[str[i]-‘A‘]++是数组a[i]的自增运算。第一次
			//循环a[2]=1;再循环一次就是a[2]=2;为的是统计相同字母的个数 
		}
		for(i=0;i<26;i++)
		{
			if(a[i] != 0)
			{
				printf("%d%c",a[i],i+‘A‘);//数字i加上字母‘A‘,结果也是字母如:2+‘A‘=‘C‘ 
			}
		}
		printf("\n");
	}
 }

扩展:

  a[str[i]-‘A‘]++ 如果换成“ a[str[i]-65]++“。效果是一样的。

      根据ASCII字符表,‘A‘对应数字65,以此类推‘Z‘对应数字90,所以如果str[i]=‘Z‘,则a[str[i]-65]=25;

JLH统计法统计飞龙

原文:https://www.cnblogs.com/Zhuohome/p/12817080.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!