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

HDU 1238 Substing

时间:2015-11-09 22:26:51      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

 

思路:

1.找出n个字符串中最短的字符串Str[N]

2.从长到短找Str[N]的子子串 subStr[N],以及subStr[N]的反转字符串strrev(subStr[N]);(从长到短是做剪枝处理)

3.用strstr()函数遍历所有的字符串,看是否含有此子子串subStr[N]或strrev(subStr[N]);只要有一个字符串不包含subStr[N]或strrev(subStr[N])就放弃这个子串,尝试下一个;

4.找到第一个满足要求的就输出strlen(subStr[N])或者strlen(strrev(subStr[N]));  这里可以用string.h头问件中的一个函数strncpy(str1, str2, n);功能:将字符串2中的最多n个字符复制到字符数组1中;

这里可以直接返回n;

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<queue>
#include<stack>
#include<math.h>
#include<vector>
#include<stdlib.h>
using namespace std;
#define INF 0x3f3f3f3f
#define N 110
struct MAZE
{
    char str[N];
    int len;
} maze[N];

bool cmp(MAZE x, MAZE y)
{
    return x.len<y.len;
}

int solve(int n);
int Find(char str[], int n);
int main()
{
    int t, n;

    scanf("%d", &t);
    while(t--)
    {
        memset(maze, 0, sizeof(maze));
        scanf("%d", &n);
        for(int i=0; i<n; i++)
        {
            scanf("%s", maze[i].str);
            maze[i].len=strlen(maze[i].str);
        }
        sort(maze, maze+n,cmp);
        int ans=solve(n);
        printf("%d\n", ans);
    }
    return 0;
}

int solve(int n)
{
    char Str[N];
    for(int i=maze[0].len; i>0; i--)
    {
        strcpy(Str, maze[0].str);
        strcat(Str, maze[0].str);
        for(int j=0; j<maze[0].len; j++)
        {
            char subStr[N];
            memset(subStr, 0, sizeof(subStr));//必须初始化
           strncpy(subStr, Str+j, i);

            if(Find(subStr, n))
                return i;
            if(Find(strrev(subStr), n))
                return i;
        }
    }
    return 0;
}

int Find(char s[], int n)
{
    for(int i=1; i<n; i++)
    {
        if(!(strstr(maze[i].str, s)))
            return 0;
    }
    return 1;
}

  

HDU 1238 Substing

标签:

原文地址:http://www.cnblogs.com/wazqWAZQ1/p/4951074.html

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