湘大 XTU OJ 1256 湘潭大学 题解(非常详细):枚举

一、链接

1256 湘潭大学

二、题目

题目描述

湘潭大学简称“XTU”,作为即将成为湘大的一份子,怎么不能为湘大添砖加瓦了?现在给你一个字符串,请你计算一下,从中选取字符,最多能组成多少个“XTU”?

输入

第一行是一个整数K,表示样例的个数。 以后每行一个字符串,字符串只包含英文大写字母,长度不会超过1000。

输出

每行输出一个样例的结果。

样例输入

3
XTUUTX
ABCDEFGHIJKLMNOPQRSTUVWXTZ
XXXTTT

样例输出

2
1
0

三、题意

找出有多少个XTU大写字母,不需要注意顺序,所以直接计数即可

四、代码

c++代码

#include
#include

using namespace std;

char op[1000+10];

int main()
{
	int t;
	scanf("%d",&t);
	
	while(t--)
	{
		int count1=0,count2=0,count3=0;
		scanf("%s",op);
		
		for(int i=0;i<1010;i++)
		{
			if(op[i]=='X')	count1++;
			if(op[i]=='T')	count2++;
			if(op[i]=='U')	count3++;
		}
		
		if(count1>0&&count2>0&&count2>0)
		{
			int ans=0;
			ans=min(count1,count2);
			ans=min(ans,count3);
			
			printf("%d\n",ans);
		}
		else	printf("0\n");
		
	}
	
	return 0;
}

c语言代码

#include

char op[1000+10];

int min(int a,int b)
{
	if(a>b)	return b;
	else	return a;
}

int main()
{
	int t;
	scanf("%d",&t);
	
	while(t--)
	{
		scanf("%s",op);
		int count1=0,count2=0,count3=0;
		
		for(int i=0;i<1010;i++)
		{
			if(op[i]=='X')	count1++;
			if(op[i]=='T')	count2++;
			if(op[i]=='U')	count3++;
		}
		
		int ans=min(count1,count2);
		ans=min(ans,count3);
		
		printf("%d\n",ans);
	}
	
	return 0;
}

 

五、总结

1.c++和c在这一题的区别就是是否需要自己实现一个比较函数

2.设置三个计数器,枚举每一个元素,然后求计数器的最小值,最后输出最小值即可

3.%s不用加取地址符&,一个小细节

4.每一次循环之后记得把计数器清零

六、精美图片

湘大 XTU OJ 1256 湘潭大学 题解(非常详细):枚举_第1张图片

 

你可能感兴趣的:(算法竞赛,湘大,XTU,OJ,算法)