题目链接:https://leetcode.cn/problems/minimum-changes-to-make-alternating-binary-string/
题目大意:给出一个字符串,只含有0
和1
,一次操作可以将一个字符反转。求最小操作次数,使得字符串的任意两个相邻字符不同。
思路:简单题,只有两种可能010101...
和101010...
,算一下变成这两种情况的字符串花费的次数,取小即可。
完整代码
class Solution {
public:
int minOperations(string s) {
int a = 0, b = 0;
for (int i = 0; i < s.length(); i++) {
if (i % 2 == 0) {
if (s[i] == '1')
a++;
else
b++;
}
else {
if (s[i] == '0')
a++;
else
b++;
}
}
return min(a, b);
}
};