我刚刚从C#技术面试/考试中退了回来,但却被其中一个难题所困扰。有人可以帮助解决这个问题,因为我无法解决这个问题,这真的让我很烦恼。问题是:
为以下方法编写反Xor函数:
public int[] XorFunction(int[] array)
{
for (int i = array.Length - 1; i > 0; i--)
{
int first = array[i];
int second = array[i - 1];
array[i] ^= second;
}
return array;
}
我是一个数据库人员,所以不完全确定Xoring功能。我来的最简单的是天真地迭代[1..array.length],并设置数组[i] ^ =数组[i + 1],但我很确定这不是正确的,因为我是更改array [i]的值,然后使用下一个数字将其用于xor。
它困扰我,因为这似乎是一个非常直接的问题......
答案 0 :(得分:0)
答案 1 :(得分:0)
代码:
public int[] UnXorFunction(int[] array)
{
for (int i = 1; i < array.Length; ++i)
{
int v = array[i - 1];
array[i] ^= v;
}
return array;
}