AT_joi2022_yo1a_c题解

· · 题解

读题可得:输入n和一个长度为n的字符串,判断字符串内是否含有3种以上(含3种) 字母,是则输出Yes,否则输出No

思考:由于题内保证字符串内只包含A,B,C,D,E,所以我们只需一个数组来存储,当录入一字母时便将与它对应的数组位置记录,最后判断即可。

代码:

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
long long n,t[10];
char s[101]; //字符数组=字符串
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>s[i];
        if(s[i]=='A')    t[1]=1;
        if(s[i]=='B')    t[2]=1;
        if(s[i]=='C')    t[3]=1;
        if(s[i]=='D')    t[4]=1;
        if(s[i]=='E')    t[5]=1;
    }
    long long sum=0;
    for(int i=1;i<=5;i++)  //ABCDE共5字母
    {
        if(t[i]>0)    sum++;
    }
    if(sum>=3)    cout<<"Yes"<<endl;
    else  cout<<"No"<<endl;
    return 0;
}