zoukankan      html  css  js  c++  java
  • 【POJ1226】Substrings

    来源:Substrings

    思路:串(下载)C++字符串函数大全(下载

    代码:

    #include <iostream>
    #include
    <string.h>
    using namespace std;
    #define MAX 101

    int t,n;
    char str[100][MAX];
    char minStr[MAX];

    void Init()
    {
    int minLen=MAX;
    cin
    >> n;
    for( int i=0;i<n;i++ )
    {
    cin
    >> str[i];
    if( strlen(str[i]) < minLen )
    {
    minLen
    = strlen(str[i]);
    strcpy(minStr,str[i]);
    }
    }
    }

    //貌似poj不支持strrev,只好自己定义
    void strrev(char *revStr,char *str)
    {
    int len = strlen(str);
    for( int i=len-1;i>=0;i-- )
    {
    revStr[len
    -i-1]=str[i];
    }
    revStr[len]
    = '\0';
    }

    int MaxSubstring()
    {
    int sourceLen = strlen(minStr);
    int subStrLen = strlen(minStr);
    char subStr[MAX],revSubStr[MAX];
    bool found;

    while( subStrLen )
    {
    for( int i=0;i<=sourceLen-subStrLen;i++ )
    {
    found
    =true;
    strncpy(subStr,minStr
    +i,subStrLen);
    //strncpy(revSubStr,minStr+i,subStrLen);
    subStr[subStrLen] = '\0';
    //revSubStr[subStrLen] = '\0';
    strrev(revSubStr,subStr);

    for( int j=0;j<n;j++ )
    {
    if( strstr(str[j],subStr) == NULL && strstr(str[j],revSubStr)

    == NULL )
    {
    found
    = false;
    break;
    }
    }
    if( found )
    return subStrLen;
    }
    subStrLen
    --;
    }

    return subStrLen;
    }



    int main()
    {
    int len;
    cin
    >> t;
    while(t--)
    {
    Init();
    len
    = MaxSubstring();
    cout
    << len << endl;
    }
    return 0;
    }
  • 相关阅读:
    梦断代码阅读笔记一
    进度一
    LOJ#6031. 「雅礼集训 2017 Day1」字符串
    cf700E. Cool Slogans
    BZOJ1014: [JSOI2008]火星人prefix
    BZOJ2716: [Violet 3]天使玩偶
    cf1080F. Katya and Segments Sets
    BZOJ1354: [Baltic2005]Bus Trip
    灭绝树题集
    How Many Substrings?
  • 原文地址:https://www.cnblogs.com/tuty/p/1853374.html
Copyright © 2011-2022 走看看