zoukankan      html  css  js  c++  java
  • 077 Kuchiguse

    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

    题意:

      找出最长公共后缀。

    思路:

      模拟。

    Code:

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
        getchar();
        string last, cur, temp;
        for (int i = 0; i < n; ++i) {
            if (i == 0)
                getline(cin, last);
            else {
                temp = "";
                getline(cin, cur);
                int len1 = cur.length() - 1;
                int len2 = last.length() - 1;
                while (len1 >= 0 && len2 >= 0) {
                    if (cur[len1--] == last[len2]) {
                        temp = last[len2--] + temp;
                    } else
                        break;
                }
                last = temp;
            }
        }
        if (last.length() == 0)
            cout << "nai" << endl;
        else {
            for (int i = 0; i < temp.length(); ++i) cout << temp[i];
            cout << endl;
        }
        return 0;
    }
    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    获取exe和dll里面的资源
    [C++] 反编译器
    再一次利用with as 优化SQL
    编码指南:寻找科学中的艺术
    对手机支付安全机制的思考
    用adblock过滤页面上固定位置的悬浮窗
    git卡在Resolving deltas 100%的解决办法
    十字路口的程序员
    hdu 2555
    hdu 1864
  • 原文地址:https://www.cnblogs.com/h-hkai/p/12809015.html
Copyright © 2011-2022 走看看