题目地址:http://pat.zju.edu.cn/contests/pat-a-practise/1077
本人代码如下:
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
char tmp[5],s[105][260];
gets(tmp);
int t=1;
int n=0;
int flg;
int l,lt;
bool flag=true;
for(int i=(signed)strlen(tmp)-1;i>=0;i--){//这里没注意,太大意了,弄反了方向
n+=(tmp[i]-'0')*t;
t*=10;
}
for(int i=0;i<n;i++){
gets(s[i]);
if(flag&&strlen(s[i])!=0){
flag=false;
flg=i;
l=strlen(s[i]);
}
}
int k=0;
int res[260];
for(int i=0;i<l;i++){
int j;
for(j=0;j<n;j++){
if(strlen(s[j])!=0) lt=strlen(s[j]);
else continue;
if(s[j][lt-1-i]!=s[flg][l-1-i]) break;
}
if(j==n){
res[k++]=s[flg][l-1-i];
}
if(j!=n) break;
}
if(k>0){
for(int i=k-1;i>=0;i--)
printf("%c",res[i]);
}
else printf("nai");
printf("\n");
return 0;
}