用 C++ 從二進位制字串中移除一個元素使得異或結果為零的方法
在這個問題中,給定一個二進位制字串。我們的任務是計算可以移除一個元素使其異或結果為零的總方法數。
舉個例子來理解這個問題:
輸入
n = 11010
輸出
3
為了解決這個問題,我們需要這樣的邏輯:如果 1 的數量是偶數,那麼字串的異或將為 0,否則,我們需要從字串中移除一個 1。無論刪除多少個 0 都不會影響異或結果。
示例程式,展示瞭解決方案的實現:
示例
#include<iostream>
#include<string.h>
using namespace std;
int wayXorZero(string binaryString){
int oneCount = 0, zeroCount = 0;
int n = binaryString.length();
for (int i = 0; i < n; i++)
if (binaryString[i] == '1')
oneCount++;
else
zeroCount++;
if (oneCount % 2 == 0)
return zeroCount;
return oneCount;
}
int main(){
string binaryString = "10110100";
cout<<"Number of ways to make XOR zero is "<<wayXorZero(binaryString);
return 0;
}輸出
Number of ways to make XOR zero is 4
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP