本文概述
- C ++
- Java
- Python3
- C#
- 的PHP
例子 :
Input : 10000
Output : 1
We only have 1 ways to Input : 10011
Output : 3
There are 3 ways to make XOR 0. We
can remove any of the three 1's.Input : 100011100
Output : 5
There are 5 ways to make XOR 0. We
can remove any of the give 0's
一种简单的解决方案是一个一个地删除一个元素, 然后计算剩余字符串的XOR。并计算删除元素使XOR为0的出现次数。
An有效的解决方案基于以下事实。如果1的计数是奇数, 那么我们必须删除1才能使计数0, 并且我们可以删除任何1。如果1的计数为偶数, 则XOR为0, 我们可以删除任何0, 而XOR仍为0。
C ++
// C++ program to count number of ways to
// remove an element so that XOR of remaining
// string becomes 0.
#include <
bits/stdc++.h>
using namespace std;
// Return number of ways in which XOR become ZERO
// by remove 1 element
int xorZero(string str)
{
int one_count = 0, zero_count = 0;
int n = str.length();
// Counting number of 0 and 1
for ( int i = 0;
i <
n;
i++)
if (str[i] == '1' )
one_count++;
else
zero_count++;
// If count of ones is even
// then return count of zero
// else count of one
if (one_count % 2 == 0)
return zero_count;
return one_count;
}// Driver Code
int main()
{
string str = "11111" ;
cout <
<
xorZero(str) <
<
endl;
return 0;
}
Java
// Java program to count number of ways to
// remove an element so that XOR of remaining
// string becomes 0.
import java.util.*;
class CountWays
{
// Returns number of ways in which XOR become
// ZERO by remove 1 element
static int xorZero(String s)
{
int one_count = 0 , zero_count = 0 ;
char [] str=s.toCharArray();
int n = str.length;
// Counting number of 0 and 1
for ( int i = 0 ;
i <
n;
i++)
if (str[i] == '1' )
one_count++;
else
zero_count++;
// If count of ones is even
// then return count of zero
// else count of one
if (one_count % 2 == 0 )
return zero_count;
return one_count;
}// Driver Code to test above function
public static void main(String[] args)
{
String s = "11111" ;
System.out.println(xorZero(s));
}
}// This code is contributed by Mr. Somesh Awasthi
Python3
# Python 3 program to count number of
# ways to remove an element so that
# XOR of remaining string becomes 0.# Return number of ways in which XOR
# become ZERO by remove 1 element
def xorZero( str ):
one_count = 0
zero_count = 0
n = len ( str )# Counting number of 0 and 1
for i in range ( 0 , n, 1 ):
if ( str [i] = = '1' ):
one_count + = 1
else :
zero_count + = 1# If count of ones is even
# then return count of zero
# else count of one
if (one_count % 2 = = 0 ):
return zero_count
return one_count# Driver Code
if __name__ = = '__main__' :
str = "11111"
print (xorZero( str ))# This code is contributed by
# Surendra_Gangwar
C#
// C# program to count number
// of ways to remove an element
// so that XOR of remaining
// string becomes 0.
using System;
class GFG
{
// Returns number of ways
// in which XOR become
// ZERO by remove 1 element
static int xorZero( string s)
{
int one_count = 0, zero_count = 0;
int n = s.Length;
// Counting number of 0 and 1
for ( int i = 0;
i <
n;
i++)
if (s[i] == '1' )
one_count++;
else
zero_count++;
// If count of ones is even
// then return count of zero
// else count of one
if (one_count % 2 == 0)
return zero_count;
return one_count;
}// Driver Code
public static void Main()
{
string s = "11111" ;
Console.WriteLine(xorZero(s));
}
}// This code is contributed by anuj_67.
的PHP
<
?php
// PHP program to count number
// of ways to remove an element
// so that XOR of remaining
// string becomes 0.// Return number of ways in
// which XOR become ZERO
// by remove 1 elementfunction xorZero( $str )
{
$one_count = 0;
$zero_count = 0;
$n = strlen ( $str );
// Counting number of 0 and 1
for ( $i = 0;
$i <
$n ;
$i ++)
if ( $str [ $i ] == '1' )
$one_count ++;
else
$zero_count ++;
// If count of ones is even
// then return count of zero
// else count of one
if ( $one_count % 2 == 0)
return $zero_count ;
return $one_count ;
}// Driver Code
$str = "11111" ;
echo xorZero( $str ), "\n" ;
// This code is contributed by aj_36
?>
输出:
5
【从二进制字符串中删除一个元素,使XOR变为0的方法】如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
推荐阅读
- C++标准模板库(STL)中的列表用法详细介绍
- 萝卜家园系统win732位介绍
- win7纯净版硬盘图解
- 光盘win7 64位图解
- win7原版系统iso介绍
- 雨林木风win7纯净版32位介绍
- win7旗舰版32介绍
- win832纯净版介绍
- 雨林木风win764位介绍