[PAT解题报告] Kuchiguse
简单题,求n个字符串的最长公共后缀。
直接做就行,看一下倒数第几个字符开始不相等,注意输入n后有个回车,建议先gets掉。
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
char s[102][300];
int len[102];
int main() {
int n;
scanf("%d",&n);
gets(s[0]);
for (int i = 0; i < n; ++i) {
gets(s[i]);
len[i] = strlen(s[i]);
}
int m = 1;
for (;;++m) {
int i;
for (i = 0; i < n; ++i) {
if ((m > len[i]) || (s[i][len[i] - m] != s[0][len[0] - m])) {
break;
}
}
if (i < n) {
break;
}
}
if (--m == 0) {
puts("nai");
}
else {
for (int i = len[0] - m; i < len[0]; ++i) {
printf("%c",s[0][i]);
}
puts("");
}
return 0;
}
原题链接: http://www.patest.cn/contests/pat-a-practise/1077

查看8道真题和解析