zoukankan      html  css  js  c++  java
  • Hlg 1665 【KMP】.cpp

    题意:

      给出一个文本串str

      给出n个模板串arr

      问有多少个模板串可以由文本串中的两段子串组成,且两段子串在文本串中的先后顺序不变。

    思路:

      用两次KMP求出每个子串从第一个字符开始的第一个出现位置和从最后一个字符开始的第一个出现位置

      即next[0][i]表示模板串中以i结尾的子串在文本串中第一次出现的位置,next[1][i]表示模板串中以i开始到最后的子串在文本串中最后一次出现的位置

      然后看一下是否有next[0][i]<next[1][i+1]的情况存在..

      如果有代表这个模板串可以在文本串中找到符合要求的情况。

    Tips:

      ①. 用另外一个字符串来记录翻转的串的时候,要在最后加上一个'\0'

      ②. 用指针传数组的时候,memset(..)不能用,只能for来初始化。

    Code:

    View Code

    链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1665

  • 相关阅读:
    Redis_配置文件
    Redis_数据使用
    QQ登录测试用例
    JMeter性能测试入门--偏重工具的使用
    浅说《测试用例》
    axure界面功能
    性能测试相关术语
    测试用例设计和测试环境搭建
    测试需求分析
    软件测试的过程
  • 原文地址:https://www.cnblogs.com/Griselda/p/2976727.html
Copyright © 2011-2022 走看看