zoukankan      html  css  js  c++  java
  • PAT 甲级 1077 Kuchiguse

    https://pintia.cn/problem-sets/994805342720868352/problems/994805390896644096

    The Japanese language is notorious for its sentence ending particles. Personal preference of such particles can be considered as a reflection of the speaker's personality. Such a preference is called "Kuchiguse" and is often exaggerated artistically in Anime and Manga. For example, the artificial sentence ending particle "nyan~" is often used as a stereotype for characters with a cat-like personality:

    Itai nyan~ (It hurts, nyan~)

    Ninjin wa iyada nyan~ (I hate carrots, nyan~)

    Now given a few lines spoken by the same character, can you find her Kuchiguse?

    Input Specification:

    Each input file contains one test case. For each case, the first line is an integer N (2<=N<=100). Following are N file lines of 0~256 (inclusive) characters in length, each representing a character's spoken line. The spoken lines are case sensitive.

    Output Specification:

    For each test case, print in one line the kuchiguse of the character, i.e., the longest common suffix of all N lines. If there is no such suffix, write "nai".

    Sample Input 1:

    3
    Itai nyan~
    Ninjin wa iyadanyan~
    uhhh nyan~

    Sample Output 1:

    nyan~

    Sample Input 2:

    3
    Itai!
    Ninjinnwaiyada T_T
    T_T

    Sample Output 2:

    nai

    代码:
    #include <bits/stdc++.h>
    using namespace std;
    
    char s[111][300], out[1111];
    int len[111];
    
    int main() {
        int N;
        scanf("%d", &N);
        getchar();
        for(int i = 1; i <= N; i ++) {
            cin.getline(s[i], 300);
        }
    
        int minn = 333;
        for(int i = 1; i <= N; i ++) {
            len[i] = strlen(s[i]);
    
            for(int j = 0; j <= len[i] / 2 - 1; j ++)
                swap(s[i][len[i] - j - 1], s[i][j]);
    
            if(len[i] < minn) {
                minn = len[i];
                continue;
            }
        }
    
        int cnt = -1;
        for(int j = 0; j < minn; j ++) {
            int flag = 1;
            for(int i = 1; i <= N; i ++) {
                if(s[i][j] != s[1][j]) flag = 0;
            }
            if(flag == 0) break;
            cnt = j;
        }
    
        if(cnt != -1) {
            for(int i = cnt;i >= 0; i --) {
                printf("%c", s[1][i]);
            }
            printf("
    ");
        }
        else
            printf("nai
    ");
    
        return 0;
    }
    

      

  • 相关阅读:
    git基础教程(三)
    Struts2_day04
    Struts2_day03
    Struts2_day02
    Struts2_day01
    Spring 学习02
    Spring 学习01
    Kafka 温故(五):Kafka的消费编程模型
    Kafka 温故(四):Kafka的安装
    Kafka 温故(三):Kafka的内部机制深入(持久化,分布式,通讯协议)
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9433919.html
Copyright © 2011-2022 走看看