以下问题基于XOR的使用:
给出一个整数的字符串。手头的任务是删除
从字符串给出字符。我尝试使用XOR来解决它。例如
char str[] = "123456"
。删除给定字符的4.
XOR
整个字符串。那个角色消失了。
XOR = (1^2^3^4^5^6) ^ 4
但是我留下剩下的角色的XOR。
XOR = (1^2^3^5^6)
有什么方法可以让个别角色回来吗?
我需要查找和删除具有重复项的元素(包括元素本身)
例如。 A = {1,9,8,2,2}然后在删除后输出应为{1,9,8}
然而,由于1 ^ 9 = 8,这将失败。因此(1 ^ 9)^ 8 ^ 2 ^ 2给出空数组。有没有使用XOR本身的替代方案?
答案 0 :(得分:0)
int num=4;
for(i=0;i<strlen(str);i++)
{
if(((str[i]-'0')^num) == 0)
remove_number(i);
}