当前位置:编程学习 > C/C++ >>

九度OnlineJudge1006之:ZOJ问题

题目描述:
对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC。
 
是否AC的规则如下:
1. zoj能AC;
2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空;
3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空;
输入:                       
输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,字符串长度小于等于1000。
输出:                       
对于给定的字符串,如果能AC则请输出字符串“Accepted”,否则请输出“Wrong Answer”。
样例输入:                       
zoj
ozojo
ozoojoo
oozoojoooo
zooj
ozojo
oooozojo
zojoooo
样例输出:                       
Accepted
Accepted
Accepted
Accepted
Accepted
Accepted
Wrong Answer
Wrong Answer
 
#include <iostream>  
#include <string>  
#include <algorithm>  
using namespace std;  
  
  
int main()  
{  
    string   str;  
    while(cin>>str)  
    {  
        size_t a = str.find_first_not_of("o");  
  
        if (a==string::npos || str[a]!='z')  
        {  
            cout<<"Wrong Answer"<<endl;  
            continue;  
        }  
  
  
        size_t b = str.find_first_not_of("o",a+1);  
  
        if (b==string::npos || b==a+1||str[b]!='j')  
        {  
            cout<<"Wrong Answer"<<endl;  
            continue;  
        }  
  
          
        size_t  c = str.find_first_not_of("o",b+1);  
  
      
        if (c!=string::npos)  
        {  
            cout<<"Wrong Answer"<<endl;  
            continue;  
        }  
        if (a*(b-a-1)!=str.size()-b-1)  
        {  
            cout<<"Wrong Answer"<<endl;  
            continue;  
        }  
        else  
        {  
            cout<<"Accepted"<<endl;  
            continue;  
        }  
  
    }  
  
    return 0;  
}  

 

 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,