Learned the theory of computing, looking back at this problem is more handy a lot.
The number of O in the ' Z ' is ' a ', ' Z ' and ' j ' between B, ' J ' and the number of O is C.
Analytic grammars can be found that the strings that match the grammar will meet:
1) b!= 0
2) A * b = c
Code:
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str;
while (Cin >> str)
{
int z_index=-1, j_index=-1;
BOOL More_than_one_z_or_j = false;
for (size_t i = 0; i < str.size (); + + i)
{
if (str[i]== ' z ' && z_index==-1)
{
Z_index = i;
} else if (str[i]== ' J ' && J_index==-1)
{
j_index = i;
} else if (Str[i]!= ' o ')
{
mor E_than_one_z_or_j = true;
break;
}
}
if (More_than_one_z_or_j = = False
&& z_index!=-1
&& j_index!=-1
&& Z_index + 1 < J_index
&& z_index* (j_index-z_index-1) = = (Str.size () -1-j_index))
{
cout << " Accepted "<< Endl;
} else
{
cout << "wrong Answer" << Endl;
}
}
return 0;
}