2013
12-23

# Q-Sequence

A Q-sequence is defined as:

Q-Seq := 0 or
Q-Seq := Q-seq Q-seq 1

That is to say a Q-Sequence is a single ’0′ or two Q-Sequences followed by an ’1′.

Given a sequence of ’0′s and ’1′s, you are to determine whether it is a Q-Sequence.

The first line is a number n refers to the number of test cases. Then n lines follows, each line has a string made up of ’1′s and ’0′s. The maximum length of the sequence is 1000.

The output contain n lines, print "Yes" if it is a Q-sequence, otherwise print "No".

3
0010011
0101
00011

Yes
No
Yes

……

#include<stdio.h>
#include<string.h>
char s[1005];
int flag;
int  search(char * s)
{
int len=strlen(s);
int i;
flag=0;
for(i=0;i<len;i++)
{
if(s[i]=='0')
{
flag++;
}
else if(s[i]=='1')
{
if(flag==1)
return flag=0;
flag--;
}
}
if(flag==1)
return flag;
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
scanf("%s",s);
search(s);
if(flag)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}