使二进制字符串交替的翻转次数 - 在 C++ 中设置 1
在本教程中,我们将编写一个程序来查找使二进制字符串交替所需的翻转次数。
假设您给出了一个二进制字符串“10011”。要生成备用二进制字符串,我们需要将最少2个字符翻转为“10101”。
备用字符串有两种可能性。它将以0或1开头。我们将检查两个替代项并计算两者所需的翻转次数。
然后返回两者中的最小值。
示例
让我们看看代码。
#include输出结果using namespace std; char flip(char binaryDigit) { return binaryDigit == '0' ? '1' : '0'; } int getFlipCountToAlternateString(string binary, char expected) { int flipCount = 0; for (int i = 0; i < binary.length(); i++) { if (binary[i] != expected) { flipCount++; } expected = flip(expected); } return flipCount; } int main() { string binary = "10011"; cout << min(getFlipCountToAlternateString(binary, '0'), getFlipCountToAlternateString(binary, '1')) << endl; return 0; }
如果你运行上面的代码,那么你会得到下面的结果。
2
结论
如果您对本教程有任何疑问,请在评论部分提及。