链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1341
这道题和1228那个很类似,也是用的异或方法找出出现一次的那个,只不过是针对字符串的,字符本身就是ascii码,可以进行这样的运算
View Code
1 #include<stdio.h> 2 #include<string.h> 3 int max(int a,int b) 4 { 5 return a>b?a:b; 6 } 7 int main() 8 { 9 char a[35]; 10 char b[35]; 11 int n,i; 12 int icase=1; 13 while(scanf("%d",&n)!=EOF) 14 { 15 memset(b,0,sizeof(b)); 16 int j; 17 for(i=0;i<n;i++) 18 { 19 scanf("%s",a); 20 int len1=strlen(a); 21 int len2=strlen(b); 22 for(j=0;j<=max(len1,len2);j++) 23 b[j]^=a[j]; 24 } 25 for(i=0;i<n-1;i++) 26 { 27 scanf("%s",a); 28 int len1=strlen(a); 29 int len2=strlen(b); 30 for(j=0;j<=max(len1,len2);j++) 31 b[j]^=a[j]; 32 } 33 printf("Scenario #%d\n",icase++); 34 printf("%s\n\n",b); 35 } 36 return 0; 37 }