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