PAT甲题题解-1077. Kuchiguse (20)-找相同后缀

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
#include <cmath>
using namespace std;
/*
找最长相同后缀
*/
const int maxn=105;
char str[maxn][300];
char ans[300];
int len[maxn];
int main()
{
    int n;
    int cnt=0;
    int minlen=300;
    scanf("%d",&n);
    getchar();
    for(int i=0;i<n;i++){
        gets(str[i]);
        len[i]=strlen(str[i]);
        minlen=min(minlen,len[i]);
    }
    bool flag;
    for(int i=1;i<=minlen;i++){
        flag=true;
        for(int j=1;j<n;j++){
            if(str[j][len[j]-i]!=str[j-1][len[j-1]-i]){
                flag=false;
                break;
            }
        }
        if(!flag){
            break;
        }
        else{
            ans[cnt++]=str[0][len[0]-i];
        }
    }
    if(cnt==0){
        printf("nai");
    }
    else{
        //if(ans[cnt-1]==' ')
            //cnt--;
        for(int i=cnt-1;i>=0;i--){
            printf("%c",ans[i]);
        }
    }
    return 0;
}
View Code

 

posted @ 2017-02-12 11:22  辰曦~文若  阅读(226)  评论(0编辑  收藏  举报