Alex likes to play with one and zero!One day he gets an empty
string.So our cute boy wants to add one and zero in it. Every time he
will add ‘01’in the string at any position and then get a new
string.For example:if the string is “01” now ,he can get “0101” or
“0011,Now give you a string that is Alex has get,you need to answer
whether the string is legal?
Input First is a integer n(n<=100) Next contains n lines .Every line is a string whose legth is no more than 1000. Output For each case output "YES" in a single line if it’s legal. Or you need to output “NO”;
Sample Input 3 0101 0110 0011 Sample Output YES NO YES
Hint
无
题意
原始串“01”,可以在任意位置添加任意个“01”。
输入n组数据,并判断是否对应。
思路
0,1互相对应,出现0,+1;出现1,-1;
如果最好计数count==0,且中途count都>0,就判断正确。
#include
#include <bits/stdc++.h>
using namespace std;`
int main()
{
int n,x,i,count=0;
int flag;
cin>>n;
char str[1000];
while(n>0){
flag = 1;
cin>>str;
x = strlen(str);
for(i=0;i<x;i++){
if(str[i] == ‘0’)
count++;
else if(str[i] == ‘1’)
count–;
if(count < 0)
flag = 0;
}
if(count != 0)
flag = 0;
if(flag == 0)
cout << “NO\n”;
else
cout << “YES\n”;
n--;
}
}