[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