【字符串】【乱搞】【AOJ-529】丢失的字符串

Description
Mr.zhou喜欢收集长度为10的字符串,并且同样的字符串总是收集偶数个。有一天,他丢失了一个,由于他收集的太多,他无法确定丢失的是哪一个。对此,集训队的各位大牛也表示无能为力,请你帮Mr.zhou找到他丢失的字符串。
Input
一个整数N (1 =< N <= 499999),N是奇数,表示Mr.zhou丢失一个字符串后剩余的字符串的个数。
接下来N行是Mr.zhou剩余的字符串
Output
输出一行,一个长度为10的Mr.zhou丢失的字符串
Sample Input
5
svyzshitjq
jmbdutpigq
ixogzmfcem
svyzshitjq
jmbdutpigq

 
Sample Output
ixogzmfcem
 
 
思路:
先把字符串排序,再两个两个比较
 
参考代码:
#include <iostream> 
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
using namespace std; 
char a[500000][15]; 
  
void quicksort(char s[][15],int left,int right) //快排
{ 
    int i=left,j=right,p=left; 
    char temp[100]; 
    strcpy(temp,s[left]); 
    while(i<j) 
    { 
        while(strcmp(s[j],temp)>=0&&j>=p)j--; 
        if(j>=p)strcpy(s[p],s[j]),p=j; 
        while(strcmp(s[i],temp)<=0&&i<=p)i++; 
        if(i<=p)strcpy(s[p],s[i]),p=i; 
    } 
    strcpy(s[p],temp); 
    if(p-left>1)quicksort(s,left,p-1); 
    if(right-p>1)quicksort(s,p+1,right); 
} 
int main() 
{ 
    int n; 
    int i=0,j=0; 
    cin>>n; 
    while(n--) 
        scanf("%s",a[i++]); 
    quicksort(a,0,i-1); 
  
    for(j=0;j<i;j+=2) //两两比较
        if(strcmp(a[j],a[j+1])) 
        { 
            puts(a[j]); 
            break; 
        } 
    return 0; 
}
原文地址:https://www.cnblogs.com/ahu-shu/p/3491306.html