codeforces 960A Check the string

题目链接:http://codeforces.com/contest/960/problem/A

题意:有A,B,C三个小朋友,A会把一个全为a的字符串给B,然后B会在这个字符串尾添加若干个b,然然后把字符串给C,C可以在字符串尾添加和a或者b相同个数的c。然后给你一个字符串,问你能不能通过这样得到,可以输出YES,不可以输出NO

分析:我们可以先统计开头a的个数,当b出现的时候我们开始统计b的个数,当c出现的时候我们统计c的个数,如果a+b+c=字符串长度,并且a=c或者b=c,我们输出YES,否则输出NO就可以了。(需要保证a,b不为0)

AC代码:

 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 int main(){
 6     ios_base::sync_with_stdio(0);
 7     cin.tie(0);
 8     string s;
 9     while(cin>>s){
10         int d=s.length();
11         int a=1,b=0,c=0;
12         if(s[0]!='a'){
13             cout<<"No"<<endl;
14             continue;
15         }
16         for(int i=1;i<d;i++){
17             if(s[i]=='a'&&b==0){
18                 a++;
19             }
20             else if(s[i]=='b'&&c==0){
21                 b++;
22             }
23             else if(s[i]=='c') c++;
24         }
25         if(a+b+c==d&&(a==c||b==c)&&a!=0&&b!=0){
26             cout<<"Yes"<<endl;
27         }
28         else cout<<"No"<<endl;
29     }
30 
31 return 0;
32 }
View Code

 

posted @ 2018-04-08 18:02  BadboyQAQ  阅读(223)  评论(0编辑  收藏  举报