代码
#include <string>
(30191)#include <iostream>
using namespace std;
void Flip(string &s,int start){
for(int i= start-1;i<=start+1;i++){
if(i>=0&&i<s.length()){
s[i]=s[i]=='0'?'1':'0';
}
}
}
void solve(){
string s;
cin>>s;
string tmp=s;
int len=s.length();
//翻转第一个元素
int cnt=0,ans=INT_MAX;
Flip(tmp,0),cnt=1;
for(int i=0;i<len-1;i++){
if(tmp[i]=='0') continue;
Flip(tmp,i+1),cnt++;
}
ans=tmp[len-1]=='0'?cnt:INT_MAX;
cnt=0,tmp=s;
for(int i=0;i<len-1;++i){
if(tmp[i]=='0') continue;
Flip(tmp,i+1),cnt++;
}
if(tmp[len-1]=='1') cnt=INT_MAX;
ans=min(ans,cnt);
if(ans==INT_MAX) cout<<"NO"<<endl;
else cout<<ans<<endl;
}
int main(){
int n;
cin>>n;
while(n--){
solve();
}
}