PTA Kuchiguse (20分)

無限の光を放つのは人間の心であり、無限の闇を生み出すのも人間の心であり、光と闇が絡み合って戦うこの世界は、懐かしくて無力な世界です。

日本語は文末の助詞で有名です。そのような粒子の個人的な好みは、話者の性格を反映していると考えることができます。このような好みは「口ぐせ」と呼ばれ、アニメやマンガでは芸術的に誇張されていることがよくあります。たとえば、人工的な文の末尾のパーティクル「nyan〜」は、猫のような性格のキャラクターのステレオタイプとしてよく使用されます。

  • 痛いにゃん〜(痛い、にゃん〜)

  • ニンジンはやにゃんにんじん(にんじん嫌い、にゃん〜)

同じキャラクターが数行話しかけたところ、彼女の口ぐせを見つけることができますか?

入力仕様:

各入力ファイルには1つのテストケースが含まれています。いずれの場合も、最初の行は整数N(2≤N≤100)です。以下は、長さが0〜256(両端を含む)文字のNファイル行で、それぞれが文字の話し言葉を表します。話し言葉は大文字と小文字が区別されます。

出力仕様:

各テストケースについて、1行に文字のクチグセを印刷します。つまり、N行すべての共通の最長サフィックスです。そのようなサフィックスがない場合は、と書いてください  nai

入力例1:

3
Itai nyan~
Ninjin wa iyadanyan~
uhhh nyan~

出力例1:

nyan~

入力例2:

3
Itai!
Ninjinnwaiyada T_T
T_T

出力例2:

nai
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#include<climits>//INT_MAX
#define PP pair<ll,int>
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3fll
#define dinf 1000000000000.0
#define PI 3.1415926
typedef long long ll;
using namespace std;
int const mod=1e9+7;
const int maxn=3e5+10;
int n;
string jg;
int main()
{
    scanf("%d\n", &n);
    for (int i = 0; i < n; i++)
    {
        string s;
        getline(cin, s);
        reverse(s.begin(), s.end());
        if (i==0)
        {
            jg=s;
            continue;
        }
        else
        {
            for(int j=0; j<min(jg.length(), jg.length()); j++)
            {
                if(jg[j]!=s[j])
                {
                    jg=jg.substr(0, j);
                    break;
                }
            }
        }
    }
    reverse(jg.begin(),jg.end());
    if(jg.length()==0)
		printf("nai");
    else 
		cout<<jg<<endl;
    return 0;
}

 

おすすめ

転載: blog.csdn.net/weixin_44170305/article/details/108380027