对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC。 是否AC的规则如下: 1. zoj能AC; 2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空;

来源:互联网 发布:线切割编程例子 编辑:程序博客网 时间:2024/05/17 07:28

对给定的字符串(只包含'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”。
样例输入:
zojozojoozoojoooozoojoooozoojozojooooozojozojoooo
样例输出:
AcceptedAcceptedAcceptedAcceptedAcceptedAcceptedWrong AnswerWrong Answer
代码:

#include<iostream.h>

#include<iomanip.h>
#include<string>
#include<windows.h>
int  *judge(char s[]);
int array[3];
int main()
{
int *p;
char s[1000];
while(1)
{
gets(s);
p=judge(s);
if(p[1]>=1)
{
if(p[0]==p[2]||p[2]==p[2]*p[0])
{
cout<<"Accept"<<endl;
}
else 
{
cout<<"Wrong answer"<<endl;
}
}
else
{
cout<<"Wrong answer"<<endl;
}
}
return 0;
}
int  *judge(char s[])
{

int m=strlen(s);
int count=0;
int i;
for(i=0;i<m;i++)
{
switch(s[i])
{
case 'o':count++;break;
case 'z':
array[0]=count;
count=0;break;
case 'j':
array[1]=count;
count=0;break;
}
}
array[2]=count;
return array;
}
1 0