Gym - 101889B Buggy ICPC (思维)

版权声明:Why is everything so heavy? https://blog.csdn.net/lzc504603913/article/details/83042551

题意:遇到元音就翻转字符串,问你有多少种输入方式

解题思路:只有最中间的两个元音会影响答案,统计最中间的两个元音之间有多少个辅音即可。

#include<bits/stdc++.h>
using namespace std;
const int MAXN=100005;
typedef long long ll;

bool check(char a){
    if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u')
        return 1;
    return 0;
}
int pos[MAXN];
int main(){

    string a;
    cin>>a;

    int num=0;
    for(int i=0;i<a.size();i++)
        if(check(a[i])){
            pos[++num]=i;
        }

    if(num!=0){
       if(!check(a[0]))
            cout<<0<<endl;
        else if(num==1){
           cout<<a.size()<<endl;
        }
       else{
           if(num%2){
               cout<<pos[num/2+2]-pos[num/2+1]<<endl;
           }
           else
               cout<<pos[num/2+1]-pos[num/2]<<endl;

       }
    }
    else
        cout<<1<<endl;




    return 0;
}

猜你喜欢

转载自blog.csdn.net/lzc504603913/article/details/83042551