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
结论
如果您在本教程中有任何疑问,请在评论区中提出。
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP