C++程序中删除二进制字符串中的“01”或“10”使其不包含“01”或“10”
在本教程中,我们将编写一个程序,用于查找 (01 或 10) 对的总数,以使二进制字符串中不再包含 (01 和 10) 对。让我们看一个例子。
输入 − 101010001
输出 − 4
在上面的示例中,我们必须删除总共 4 对才能使二进制字符串中不再包含 (01 和 10) 对。
删除所有对后,得到的字符串为 0。
我们必须从二进制字符串中删除所有 01 和 10 对。因此,要删除的对的总数是 count(1) 和 count(0) 的最小值。
让我们看看解决问题的步骤。
初始化二进制字符串。
查找零和一的计数。
打印零和一计数中的最小值。
示例
让我们看看代码。
#include <bits/stdc++.h> using namespace std; int findMinimumNumberOfDeletions(string str, int len) { int zeroes_count = 0, ones_count = 0; // counting zeroes and ones for (int i = 0; i < len; i++) { if (str[i] == '0') { zeroes_count++; } else { ones_count++; } } return min(zeroes_count, ones_count); } int main() { string str = "101010001"; int len = str.length(); cout << findMinimumNumberOfDeletions(str, len) << endl; return 0; }
输出
如果执行上述程序,则将获得以下结果。
4
结论
如果您在本教程中有任何疑问,请在评论区中提出。
广告