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;
    }
    

      

  • 相关阅读:
    2.Mysql集群------Mycat读写分离
    ASP.NET Core 认证与授权[4]:JwtBearer认证
    API做翻页的两种思路
    C# 8
    ASP.NET Core 认证与授权[2]:Cookie认证
    ASP.NET Core 认证与授权[1]:初识认证
    Asp.Netcore使用Filter来实现接口的全局异常拦截,以及前置拦截和后置拦截
    C#中out和ref的区别
    存储过程的优缺点
    存储过程的作用和意义,讲的很好
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9433919.html
Copyright © 2011-2022 走看看