1416: Find the Lost Sock
Time Limit: 2 Sec Memory Limit: 128 MB
Submit: 364 Solved: 83
[Submit][Status][Web Board]
Description
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
easafgh
aqwerty
easdfgh
easdfgh
aqwerty
aqwerty
2
0x0abcd
0ABCDEF
0x0abcd
Sample Output
aabcdef
easafgh
0ABCDEF
【分析】又又又是异或-_-|| 异或有结合律,且两个相同的数据进行异或结果为0,任何数据和0异或是它本身,因此把所有的字符串进行异或,得到的结果就是没有配对的即所求的字符串。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
char a[10];
char s[8];
while(~scanf("%d",&t))
{
int i,j;
cin>>a; //先输入一个字符串
for(i=1;i<2*t-1;i++)
{
cin>>s;
for(j=0;j<7;j++)
a[j]^=s[j];
}
printf("%s\n",a);
}
}