zoukankan      html  css  js  c++  java
  • 1077 Kuchiguse (20 分)

    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). 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
     
     题解:反转所有字符串,比较2-n字符串是否与第一个字符串字符相同,设立计数器统计相同前缀长度
    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1010;
    #define inf 0x3fffffff
    int main(){
        int n;
        cin>>n;
        getchar();
        string st[maxn];
        int minLen=inf;
        for(int i=0;i<n;i++){
            getline(cin,st[i]);
            reverse(st[i].begin(),st[i].end());
            if(st[i].length()<minLen){
                minLen=st[i].length();
            }
        }
        int cnt=0;
        for(int i=0;i<minLen;i++){
            char c=st[0][i];
            bool same=true;
            for(int j=1;j<n;j++){
                if(st[j][i]!=c){
                    same=false;
                }
            }
            if(same){
                cnt++;
            }
            else{
                break;
            }
        }
        if(cnt==0){
            cout<<"nai"<<endl;
            return 0;
        }
        string s=st[0].substr(0,cnt);
        reverse(s.begin(),s.end());
        for(int i=0;i<cnt;i++){
            cout<<s[i];
        }
        cout<<endl;
        return 0;
    }
  • 相关阅读:
    Oracle 中 varchar2(N) 与 varchar2(N char) 的区别
    EXP-00008: 遇到 ORACLE 错误 1455
    服务器重装Windows Server2008 R2操作系统
    h5页面自定义主题色(vue)
    初窥vue3.0
    ElasticSearch学习笔记_1
    mysql索引的使用
    什么时候使用视图
    Latex使用手册记录
    最大熵模型理论及NLP应用总结
  • 原文地址:https://www.cnblogs.com/dreamzj/p/15000061.html
Copyright © 2011-2022 走看看