zoukankan      html  css  js  c++  java
  • HDU-1238-Substrings

    题目链接

    http://acm.hdu.edu.cn/showproblem.php?pid=1238

    题意:给你n个字符串,找出最长公共子串。

    解法: 找到长度最小的字符串,枚举所有子串,

    这题我又学到了一个

    C语言strstr()函数:返回字符串中首次出现子串的地址

    头文件:#include <string.h>

    strstr()函数用来检索子串在字符串中首次出现的位置,其原型为:
        char *strstr( char *str, char * substr );

    【参数说明】str为要检索的字符串,substr为要检索的子串。

    【返回值】返回字符串str中第一次出现子串substr的地址;如果没有检索到子串,则返回NULL。

    【函数示例】strstr()函数的使用。

    #include<stdio.h>
    #include<string.h>
    int main(){
        // 也可以改成 char str[] = "http://see.xidian.edu.cn/cpp/u/xitong/";
        char *str = "http://see.xidian.edu.cn/cpp/u/xitong/";
        char *substr = "see";
        char *s = strstr(str, substr);
        printf("%s
    ", s);
        return 0;
    }

    运行结果:
    see.xidian.edu.cn/cpp/u/xitong/

    代码

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    #define inf 1000
    using namespace std;

    int main(void)
    {
    int i,j,k,k1,k2,k3,t,n;
    int f;
    char a[110][110];
    char s1[110],s2[110];
    scanf("%d",&t);
    while(t--)
    {
    int Max=0;
    k1=inf;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
    scanf("%s",a[i]);
    k2=strlen(a[i]);
    if(k1>k2)
    {
    k1=k2;
    f=i;
    }
    }
    int len=strlen(a[f]);
    for(i=0;i<len;i++)
    {
    for(j=i;j<len;j++)
    {
    for(k=i;k<=j;k++)
    {
    s1[k-i]=a[f][k];
    s2[j-k]=a[f][k];
    }
    s1[j-i+1]=s2[j-i+1]='';
    int flag=1;
    for(k=0;k<n;k++)
    {
    if(!strstr(a[k],s1)&&!strstr(a[k],s2))
    {
    flag=0;
    break;
    }
    }
    int chang=j-i+1;
    if(flag&&chang>Max)
    {
    Max=chang;
    }
    }
    }
    printf("%d ",Max);
    }
    return 0;
    }

  • 相关阅读:
    c++中的内存管理【转载】
    c++中dynamic_cast、static_cast、reinterpret_cast和const_cast作用
    c++中的顶层const和底层const
    c++赋值操作符需要确保自我赋值的安全性问题
    二分法查找
    Servlet基础总结
    java 正则表达式:有丶东西
    HTTP协议初步认识
    Java synchronized到底锁住的是什么?
    ECMA Script 6新特性之解构赋值
  • 原文地址:https://www.cnblogs.com/liudehao/p/4147960.html
Copyright © 2011-2022 走看看