欢迎关注我们的公众号:Grand Theft Algorithm
专注算法题解、算法技术文分享
二分法保证教会你
就是个简单的贪心,两个布尔值判断当前段内是否有0和1,若遍历到某一字符时两个布尔值均为True,则可以分一段新的出来,然后两个布尔值更新即可。
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int a[maxn], b[maxn];
int main() {
string s;
cin >> s;
bool a1 = false, a2 = false;
int res = 0;
for(char c : s) {
if(c == '0') {
a1 = true;
} else {
a2 = true;
}
if(a1 && a2) {
res++;
a1 = false;
a2 = false;
}
}
cout << res << endl;
return 0;
}
欢迎关注我们的公众号:Grand Theft Algorithm
专注算法题解、算法技术文分享
二分法保证教会你