PAT (Advanced Level) 1077. Kuchiguse (20)

最长公共后缀。暴力。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<map>
#include<stack>
#include<queue>
#include<string>
#include<algorithm>
using namespace std;

char s[200][300];
int len[200];
int n;

int main()
{
    memset(s,0,sizeof s);
    scanf("%d",&n);
    getchar();
    for(int i=1; i<=n; i++) gets(s[i]);
    for(int i=1; i<=n; i++) len[i]=strlen(s[i]);

    for(int i=1; i<=n; i++)
    {
        for(int j=0; j<len[i]/2; j++)
            swap(s[i][j],s[i][len[i]-j-1]);
    }

    bool fail=0;
    for(int j=0;s[1][j]; j++)
    {
        for(int i=2; i<=n; i++)
            if(s[i][j]!=s[i-1][j]) fail=1;
        if(fail==1)
        {
            if(j==0) printf("nai
");
            else
            {
                for(int k=j-1; k>=0; k--)
                    printf("%c",s[1][k]);
                printf("
");
            }
            break;
        }
    }

    if(fail==0)
    {
        for(int k=len[1]-1; k>=0; k--)
            printf("%c",s[1][k]);
        printf("
");
    }
    return 0;
}
原文地址:https://www.cnblogs.com/zufezzt/p/5636182.html