⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1238.cpp

📁 杭电 acm部分代码 有兴趣的可以下载 谢谢
💻 CPP
字号:
#include<iostream>
#include<string>
using namespace std;
unsigned min_index;
char s[101][101];
int match(int begin,int end,int num){
    int flag,i,j,r,k,n;
    for(n=0;n<num;n++){
        for(flag=0,k=0;!flag&&k<=strlen(s[n])-(end-begin+1);k++){
            int sign_1=1,sign_2=1;
            for(i=k,j=begin;j<=end;i++,j++)
                if(s[n][i]!=s[min_index][j]){
                    sign_1=0;
                    break;
                }
            for(i=k,r=end;r>=begin;i++,r--)
                if(s[n][i]!=s[min_index][r]){
                    sign_2=0;
                    break;
                }
            if(sign_1==1||sign_2==1)
                flag=1;
        }
        if(flag==0)
            return 0;
    }
    return 1;
}
int main()
{
    int m,n,i,j,min;
    cin>>m;
    while(m--){
        cin>>n;
        memset(s,0,sizeof(s));
        for(i=0;i<n;i++)
            cin>>s[i];
        min=strlen(s[0]);
        min_index=0;
        for(i=1;i<n;i++)
            if(strlen(s[i])<min){
                min=strlen(s[i]);
                min_index=i;
            }
        for(i=min;i>0;i--)
            for(j=0;j<=min-i;j++)
                if(match(j,i+j-1,n)==1){
                    cout<<i<<endl;
                    goto end;
                }
        if(i==0)
            cout<<0<<endl;
        end:
            continue;
    }
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -