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<cstring>
using namespace std;
int main(void)
{
string s;
while(cin>>s){
int z_index = s.find('z');
int j_index = s.find('j');
int front = z_index;
int middle = j_index-z_index-1;
int behind = s.length()-j_index-1;
bool flag=false;
while(middle>1)
{
behind-=front;
middle--;
}
if(middle==1&&front==behind) flag=true;
if(flag) cout<<"Accepted\n";
else cout<<"Wrong Answer\n";
}
return 0;
}