题目链接:A. Binary Imbalance
题目描述:
样例:
样例解析:
题意:给定一个由0,1字符构成的字符串s,你可以选择在s的第i到第(i+1)个字符之间插入一个字符(i,i+1的范围在0到字符串s的长度-1),当si=si+1,则可以在这两个字符中间插入字符‘1’,反之,则可以在这两个字符中间插入字符‘0’。问有没有可能使用任意数量的操作(可能是不进行任何操作)使字符串中的0的数量严格大于1的数量?可以输出"YES",不可以输出"NO"。
思路:当字符串中没有‘1’的时候,一定满足题意。剩下的情况中,可以发现字符串中如果存在一组si≠si+1,就能在这之间无限产生出‘0’,也都能满足题意。
#include<bits/stdc++.h>
using namespace std;
#define endl "\n"
int t,n;
int main(){
cin>>t;
while(t--){
cin>>n;
string s;
cin>>s;
//字符串中没有1或者si≠si+1存在的时候都能满足题意
if(s.find("01")!=-1||s.find("10")!=-1||s.find("1")==-1){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}
return 0;
}