Wide Flip(关于字符反转的问题)
题意:求最大的k使得01字符串变成0串。可进行操作:把区间长度大于等于k的区间里的字符翻转(0变1,1变0)。
hint:当相邻两个字符不相同的时候,我们需要改变其中的某一个字符(此时取长度大的那个,同时更新一下答案),使得两个字符相同,经过不断操作,我们可以保证最后所有不同的地方都能改变,即把字符串变成全0串,或全1串(全1再更新一下,也是全0串)。
```
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(){
string str;
cin>>str;
int ans=str.size();
for(int i=0;i<str.size()-1;++i){
if(str[i]!=str[i+1]){
int d = max(i+1,(int)str.size()-i-1);
ans = min(d,ans);
}
}
cout<<ans<<endl;
return 0;
}
本文探讨了WideFlip问题,旨在寻找最长的操作序列使任意01字符串转换为全0串。通过分析相邻字符的不同之处并采取相应的翻转操作,最终确定了最小的翻转长度。
432

被折叠的 条评论
为什么被折叠?



