zoj 3432(异或的使用)

Find the Lost Sock

Time Limit: 2 Seconds      Memory Limit: 65536 KB

Alice bought a lot of pairs of socks yesterday. But when she went home, she found that she has lost one of them. Each sock has a name which contains exactly 7 charaters.

Alice wants to know which sock she has lost. Maybe you can help her.

Input

There are multiple cases. The first line containing an integer n (1 <=n <= 1000000) indicates that Alice bought n pairs of socks. For the following 2*n-1 lines, each line is a string with 7 charaters indicating the name of the socks that Alice took back.

Output

The name of the lost sock.

Sample Input
2
aabcdef
bzyxwvu
bzyxwvu
4
aqwerty
eas fgh
aqwerty
easdfgh
easdfgh
aqwerty
aqwerty
2
0x0abcd
0ABCDEF
0x0abcd
Sample Output
aabcdef
eas fgh
0ABCDEF
 
题目大意:题目一看就是匹配字符串的。
思路:字符串匹配。。不过老是TLE。上网一看原来是异或的使用。。这种算思路的积累吧。。实在想不到。。
//大神代码。
#include<stdio.h>

/* 

为异或量身定做的题。 
异或满足结合律和交换律,则有A^B^A = A^(B^A) = A^A^B = B 
所以所有字符串异或的结果就是答案了。 
*/

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
         getchar();                     
         int i,j;
         int a[8]={0};
         char s[10];
         for(i=0;i<n;i++)
         {
              gets(s);
              for(j=0;j<7;j++)
              a[j]=a[j]^s[j];
         }
         for(i=0;i<n-1;i++)
         {
              gets(s);
              for(j=0;j<7;j++)
              a[j]=a[j]^s[j];
         }
         for(i=0;i<7;i++)
         printf("%c",a[i]);
         printf("\n");
    }
}


 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值