[解説] - AcWing - 779最長共通サフィックス文字列

779最長共通サフィックス文字列

タイトル説明

これは、これらの文字列の最長共通接尾辞数の文字列を与えます。

入力形式

これは、入力コンポーネントのいくつかのセットで構成されています。

各入力の最初の行は、整数Nです。

Nは、それ以外の場合は、N個の入力ラインをバック続ける、入力された0の終わりを示し、各行は、文字列(空白を除く文字列)です。

各文字列の長さが200を超えてはなりません。

出力フォーマット

総ライン、サフィックスNは最長の共通の文字列(空の場合)です。

データ範囲

1≤N≤200

サンプル入力:

3
baba
aba
cba
2
aa
cc
2
aa
a
0

出力例:

ba

a
難易度:ハード
タイム/スペースの制限:1秒/ 64メガバイト
合計によって:59
試行の総数:103
出典:文法の質問
アルゴリズムラベル:文字列

ACコード

#include <iostream>
#include <cstdio>
using namespace std;
int n;
string l[201];
int main(){
    while(cin>>n){
        if(n==0) return 0;
        int lm=9999999,la=0;
        for(int i=1;i<=n;i++){
            cin>>l[i];//先将字符串存储在数组中
            int len=l[i].size();
            lm=min(len,lm);
        }
        for(int i=1;i<=lm;i++){
            int f=1;
            for(int j=1;j<n;j++){
                int l1=l[j].size(),l2=l[j+1].size();
                if(l[j][l1-i]!=l[j+1][l2-i]){
                    f=0;
                    break;
                }
            }
            if(f == 0) break;
            else la++;
        }
        for(int i=la;i;i--) cout<<l[1][l[1].size()-i];
        cout<<endl;
    }
}

考えます

文字列の配列の使用に注意してください、文字列も配列です。

この質問は、文字列の使用、より柔軟性があり、その後、より理解することが可能です。

公開された34元の記事 ウォンの賞賛2 ビュー884

おすすめ

転載: blog.csdn.net/Kapo1/article/details/104017803