Python XOR和数组| 竞争编码问题

题:

约翰爱XOR。John的朋友总是问他与XOR有关的疑惑,他帮助他们解决问题,但由于考试而他很忙,并请您帮助他的朋友。他的一位朋友希望您解决以下问题。给定N个数字和K个数的数组。任务是插入定数组中的数字,使得按位异或新的阵列中的所有元素等于给定输入ķ

输入:

输入的第一行包含一个整数T,表示测试用例的数量。

每个测试用例的第一行包括2个表示NK的整数。每个测试用例的第二行包含N个表示数组的整数。

    1
    5  10
    1  2  3  4  5

输出:

对于每一个测试情况下,通过插入该打印数XOR阵列中所有的元件的变为等于ķ

    Explanation:
    1^2^3^4^5^11 = 10

    Output:
    11

限制条件:

    1 <= T <100
    1<N, K = 100
    1 <= array elements <= 10^3

为了解决这个问题,我们使用Python3。

按位异或运算

在python中,按位运算符用于对整数执行按位运算。首先,将整数转换为二进制数字,然后进行逐位运算,结果以十进制格式返回。

XOR运算表,

运作方式结果
0 ^ 00
0 ^ 11
1 ^ 00
1 ^ 10

码:

# 输入测试用例(T)
print("Input test case: ")
t = int(input())

while(t>0):
  t=t-1

  # m和k的输入值 
  print("Input value of m and k: ") 
  m,k=list(map(int,input().split()))

  # 输入数组元素
  print("Input array elements: ")
  arr=list(map(int,input().split()))

  # 存储第一个值
  res=arr[0]
  for i in range(1,m):
    # 执行按位XOR操作 
    # 在数组中的元素上
    res=res^arr[i]

  # 打印结果
  print("Result is: ")
  print(k^res)

输出结果

Input test case: 
1
Input value of m and k: 
5 10
Input array elements: 
1 2 3 4 5
Result is: 
11