CF1913B 题解
题目大意
一个
题目其实问我们把一个字符串
思路
有点贪心的意思。
因为交换两个元素不仅一次可以满足两个元素,代价还为
操作
Code
#include<bits/stdc++.h>//万能头文件
using namespace std;
int t;
int cnt1;//字符串中操作1的次数
int cnt0;//字符串中操作0的次数
string s;
int main(){
cin>>t;
while(t--){
cnt1=0,cnt0=0;//初始化
cin>>s;
int len=s.size();
for(int i=0;i<len;i++){
if(s[i]=='0')cnt1++;//字符串中0的个数
else cnt0++;//字符串中1的个数
}
for(int i=0;i<len;i++){
if(s[i]=='0'){
if(cnt0)//可以交换一个0
cnt0--;//字符串中操作0的次数-1
else//0已经交换完了
break;
}else{
if(cnt1)//可以交换一个1
cnt1--;//字符串中操作1的次数-1
else//1已经交换完了
break;
}
}
cout<<cnt1+cnt0<<endl;//字符串中操作1的次数+字符串中操作0的次数
}
return 0;//完工
}