对于0000000可能会有1010101,0101010两种情况,如何找到最多1的情况,目前没有思路,以下是暴力解法:
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin >> s;
int count = 0;//统计座位的个数
for (int i = 0; i < s.size(); i++) {
if (s[i] == '0') {
if (i == 0 && s[i + 1] == '0') {//讨论两边
s[i] = '1';
count++;
}
else if (i == s.size() - 1 && s[i - 1] == '0') {
s[i] = '1';
count++;
}
else if(s[i - 1] == '0' && s[i + 1] == '0'){
s[i] = '1';
count++;
}
else{
continue;
}
}
else{
continue;
}
}
cout << count << endl;
return 0;
}
// 64 位输出请用 printf("%lld")