做PAT的时候发现当年复试时做的题目,当时因为紧张所以没有发挥好,居然以为第一道题是最难的,现在看看发现当时一定是脑袋短路了。
题目很简单,只需要将字符串逆序,然后按照最小的长度比较,相同的再逆序输出。
本来还以为题目会不会因为空格等字符卡题,现在想想其实这道题出的确实简单。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int N;
while(scanf("%d",&N)!=EOF)
{
getchar();
char str[102][257];
char same[300];
int minLen = 300;
for(int i=0;i<N;i++)
{
gets(str[i]);
int len = strlen(str[i]);
if(len<minLen)
minLen = len;
for(int j=0;j<len/2;j++)
{
char temp = str[i][j];
str[i][j] = str[i][len-j-1];
str[i][len-j-1] = temp;
}
}
int x = 0;
while(x<minLen)
{
char c = str[0][x];
bool isSame = true;
for(int i=1;i<N;i++)
{
if(str[i][x] != c)
{
isSame = false;
break;
}
}
if(isSame == false)
break;
same[x++] = c;
}
if(x==0)
printf("nai\n");
else
{
for(int i=x-1;i>=0;i--)
printf("%c",same[i]);
printf("\n");
}
}
return 0;
}`