【PAT】A1077. Kuchiguse (20)

来源:互联网 发布:2333软件 编辑:程序博客网 时间:2024/04/29 19:31

A1077. Kuchiguse (20)

相同后缀问题转化位相同前缀问题,便于处理

#include <stdio.h>#include <string.h>// 反转字符串void reverse(char* str){    int len = (int)strlen(str);    char temp;    for(int i = 0; i < len / 2; i++){        temp = str[len - i - 1];        str[len - 1 - i] = str[i];        str[i] = temp;    }}int main(int argc, const char * argv[]) {    int N, minLen = 256;    char str[100][256];    scanf("%d", &N);    getchar(); // 接收换行符    for(int i = 0; i < N; i++){        gets(str[i]);        minLen = ((int)strlen(str[i]) < minLen) ? (int)strlen(str[i]) : minLen;        reverse(str[i]);    }    int counter = 0;    for(int i = 0; i < minLen; i++){        char c = str[0][i];        int isEqual = 1;        // 遍历每个字符串的第i位是否相同        for(int j = 1; j < N; j++){            if(str[j][i] != c){                isEqual = 0;                break;            }        }        // 如果第i位相同,则counter加一        if(isEqual)            counter++;        else            break;    }    // 从0到(counter-1)之间的字符串即位相同前缀    if(counter){        for(int i = counter - 1; i >= 0; i--)            printf("%c", str[0][i]);    } else {        printf("nai");    }    return 0;}
0 0