码迷,mamicode.com
首页 > 其他好文 > 详细

Find the Lost Sock

时间:2018-05-05 20:42:05      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:str   air   one   出现   tip   win   http   技术   help   

描述

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.

输入

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.

输出

The name of the lost sock.

样例输入

2
aabcdef
bzyxwvu
bzyxwvu
4
aqwerty
eas fgh
aqwerty
easdfgh
easdfgh
aqwerty
aqwerty
2
0x0abcd
0ABCDEF
0x0abcd

样例输出

aabcdef
eas fgh
0ABCDEF

提示

Because of HUGE input, scanf is recommended.

解题思路:

数据量很大,用map存会超时。由于一位学长的指点,了解到了按位异或,当一个数出现了两次的时候就会抵消,所以我们只要不断按位异或,最后剩下的就是答案。

比如 1 1 3 2 2

我们只要按位异或 1->0->3->1->3

最后的3便是所求的答案。

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,m,i,j,k;
    while(cin>>n)
    {
        getchar();
        int s[8]={0};char a[10];
        for(i=1;i<=2*n-1;i++)
        {
            gets(a);
            for(j=0;j<7;j++) s[j]=s[j]^(char)a[j];
        }
        for(i=0;i<7;i++) cout<<(char)s[i];
        cout<<"\n";
    }
}

 

Find the Lost Sock

标签:str   air   one   出现   tip   win   http   技术   help   

原文地址:https://www.cnblogs.com/ww123/p/8995691.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!