补题G题(0011)

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--;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值