码迷,mamicode.com
首页 > 其他好文 > 详细

HDOJ1238(string)

时间:2015-07-30 19:01:21      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:

string中自带的find(cosnt char *)可完成字符串匹配,该题目的是练习string的使用。字符串长度较小,暴力即可。

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
const int SIZE=102;
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        string a[SIZE];
        int n;
        cin>>n;
        int len=105;
        int k;
        for(int i=0;i<n;i++)
        {
            cin>>a[i];
            if(a[i].length()<len)
            {
                len=a[i].length();//记录长度最短的字符串 
                k=i;
            }
        }
    
        char s[SIZE]={\0};
        char res[SIZE]={\0};
        char out[SIZE]={\0};
        int maxn=-1;
        for(int i=0;i<len;i++)
        {
            for(int j=i;j<len;j++)
            {
                memset(s,\0,sizeof(s));
                memset(res,\0,sizeof(res));
                for(int l=i;l<=j;l++)
                {
                    s[l-i]=a[k][l];
                    res[j-l]=a[k][l];
                }
                 int cnt=0;
                for(int l=0;l<n;l++)
                {
                    if(a[l].find(s)!=-1||a[l].find(res)!=-1) //若匹配成功则返回下标位置 
                    {                                        //否则返回-1; 
                        cnt++;
                    }
                }            
                if(cnt==n)            //若所有字符串均匹配成功则更新答案 
                {
                    if(j-i+1>maxn)
                    {
                        maxn=j-i+1;
                        out[0]=\0;
                        maxn=strlen(s);
                        strcpy(out,s);
                    }
                }
            }
        }
        
        if(maxn>-1)
            cout<<maxn<<endl;
        else
            cout<<0<<endl;
        
    }
    return 0;
}

 

HDOJ1238(string)

标签:

原文地址:http://www.cnblogs.com/program-ccc/p/4689875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!