九度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;
}

原文地址:https://www.cnblogs.com/ainima/p/6331240.html