代码 #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(); } }
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务