【问题标题】:The use of XOR for removing character from string and finding duplicates使用 XOR 从字符串中删除字符并查找重复项
【发布时间】:2014-06-27 19:04:00
【问题描述】:

以下问题基于 XOR 的使用:

  1. 给定一个整数字符串。手头的任务是删除 字符串中的给定字符。我尝试使用 XOR 来解决它。例如 char str[] = "123456" 。删除4. XOR 给定的字符 整个字符串。那个角色消失了。

    XOR = (1^2^3^4^5^6) ^ 4
    

    但是,剩下的字符是 XOR。

    XOR = (1^2^3^5^6)
    

    有什么方法可以找回单个字符吗?

  2. 我需要查找并删除具有重复项的元素(包括元素本身)

    例如。 A = {1,9,8,2,2} 那么移除后输出应该是 {1,9,8}

    但是,由于 1^9 = 8,这将失败。因此 (1^9)^8^2^2 给出空数组。有没有使用 XOR 本身的替代方法?

【问题讨论】:

  • 很难理解你在这里问什么。你的符号很混乱,所以我不知道你是想对所有元素进行异或,还是用 4 对每个元素进行异或。请编辑你的问题以澄清,并提供实际编程语言的代码示例。跨度>

标签: string algorithm duplicates bit-manipulation xor


【解决方案1】:
int num=4;
for(i=0;i<strlen(str);i++)
{
    if(((str[i]-'0')^num) == 0)
        remove_number(i);
}

【讨论】:

  • 什么是删除号码?
  • remove_number(int) 是一个您可以创建的函数,您可以在其中分配索引 str[i]=0 以便在打印时知道该索引已被删除
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多