• 求多个字符串相同的且最前面的子字符串(该字符串长度>=3)【用递归进行判断】


    #include <iostream>
    using namespace std;

    char a[100][10000];
    int p1,p2,b[100],n,k;

    bool p(int p1,int p2)
    {int i,j;
        if(p1==n-1)
    return 1;
    else{
        for(i=p2;i<strlen(a[p1])-2;i++)
            for(j=0;j<strlen(a[p1+1])-2;j++)
                if(a[p1][i]==a[p1+1][j]&&a[p1][i+1]==a[p1+1][j+1]&&a[p1][i+2]==a[p1+1][j+2])
                {if(p(p1+1,j))
                {b[p1]=i;b[p1+1]=j;return 1;}
                
                }
                
                
    }
    return 0;
    }

    int main()
    {
        int t,i,j;
        cin>>t;
        while(t--)
        {
            cin>>n;
            for(i=0;i<n;i++)
            cin>>a[i];
            if(p(0,0))
            {
                bool o=0;
                for(i=b[0]+1;i<strlen(a[0]);i++)
                {for(j=1;j<n;j++)
                if(a[0][i]!=a[j][i-b[0]+b[j]])
                {o=1;break;}
                if(o==1)break;
                }
                
                for(j=b[0];j<i;j++)
                    cout<<a[0][j];
                cout<<a[i-1]<<endl;
            }
            else cout<<"no significant commonalities"<<endl;
        }
        return 0;}

  • 相关阅读:
    Eclipse的自动排版设置(format)
    Java中" "表示几个空格
    cookie和session详解
    IO流操作详解
    springmvc常用注解标签详解
    mavenWeb工程建立步骤
    数据导出为excel表格
    Springmvc jar包介绍
    【初级算法】5.只出现一次的数字
    【初级算法】4.存在重复
  • 原文地址:https://www.cnblogs.com/lengxia/p/4387834.html
Copyright © 2020-2023  润新知