一、链接
1256 湘潭大学
二、题目
题目描述
湘潭大学简称“XTU”,作为即将成为湘大的一份子,怎么不能为湘大添砖加瓦了?现在给你一个字符串,请你计算一下,从中选取字符,最多能组成多少个“XTU”?
输入
第一行是一个整数K,表示样例的个数。 以后每行一个字符串,字符串只包含英文大写字母,长度不会超过1000。
输出
每行输出一个样例的结果。
样例输入
3 XTUUTX ABCDEFGHIJKLMNOPQRSTUVWXTZ XXXTTT
样例输出
2 1 0
三、题意
找出有多少个XTU大写字母,不需要注意顺序,所以直接计数即可
四、代码
c++代码
#include<iostream>
#include<algorithm>
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<stdio.h>
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.每一次循环之后记得把计数器清零
六、精美图片