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
結論
如果您在本教程中有任何疑問,請在評論區中提出。
廣告