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.
![](http://acm.zju.edu.cn/onlinejudge/showImage.do?name=find-the-lost-sock.jpg)
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"); } }