注解
1、枚举和异或。
2、理解题目意思,用一个大写字母来异或给出的每个数字,得到的全都是大写字母,就满足题意。题目保证答案唯一。所以只需要枚举26个大写字母就可以了。
代码
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int N;
while(~scanf("%d", &N)){
int a[N];
for(int i=0; i<N; i++){
scanf("%d", &a[i]);
}
for(int i='A'; i<='Z'; i++){
int b[N];
int cnt = 0;
for(int j=0; j<N; j++){
b[j] = a[j] ^ i;
if(b[j]<65 || b[j]>90){
break;
}
else{
cnt++;
}
}
if(cnt==N){
for(int j=0; j<N; j++){
cout<<(char)b[j];
}
cout<<endl;
break;
}
}
}
return 0;
}