思路:关键是用一个数组记录母串中当前所指字符与子串相匹配字符的长度。kmp思想,当母串中出现一次子串时,j跳到子串pos[i-len2]的位置接着与母串i所指的下一个字符比较。

(wawawawawawaac)

Censor

frog is now a editor to censor so-called sensitive words (敏感词).

She has a long text pp. Her job is relatively simple -- just to find the first occurence of sensitive word ww and remove it.

frog repeats over and over again. Help her do the tedious work.

Input

The input consists of multiple tests. For each test:

The first line contains 11 string ww. The second line contains 11 string pp.

(1≤length of w,p≤5⋅1061≤length of w,p≤5⋅106, w,pw,p consists of only lowercase letter)

Output

For each test, write 11 string which denotes the censored text.

Sample Input

    abcaaabcbcbbbbabcab

Sample Output

    aab

#include<iostream>

#include<cstring>

#include<string>
#include<cstdio>
using namespace std;
const int maxn=5000005;
char s1[maxn],s2[maxn];
int pos[maxn];
int nextt[maxn];
char las[maxn];
int len1,len2 ;
using namespace std;

void GetNext()
{ int i=0,j=-1;
    nextt[0]=-1;
    while(s2[i]!='\0')
    {
        if(j==-1 || s2[i]==s2[j])
        {
            i++;
            j++;
        nextt[i]=j;
        }
        else
            j=nextt[j];
    }
}
int main()
{

while(~scanf("%s %s",s2,s1))//s2 子串,s1 母串

{
        len1 = strlen(s1);
        len2 = strlen(s2);
        GetNext();
        int k=0;
        int i=0;
        int j=0;
        while(i < len1)
        {
            las[k]=s1[i];
            while(j!=-1 && las[k]!=s2[j])
                j=nextt[j];
            i++;
            j++;
            pos[k++]=j;   //记录匹配到k位置时对应的成功匹配到了的子串字符数目.
            if(j==len2)
            {
                k-=len2;  //相当于删除。
                j=pos[k-1];  子串跳转的位置。
            }
        }
        las[k] = '\0';
        printf("%s\n",las);
    }
}

Censor (kmp)相关推荐

  1. SCU - 4438 Censor (KMP)

    Censor frog is now a editor to censor so-called sensitive words (敏感词). She has a long text pp. Her j ...

  2. JavaScript实现knuth-morris-pratt(KMP)算法(附完整源码)

    JavaScript实现knuth-morris-pratt(KMP)算法(附完整源码) knuthMorrisPratt.js完整源代码 knuthMorrisPratt.test.js完整源代码 ...

  3. Oulipo(kmp)

    Oulipo(kmp) The French author Georges Perec (1936–1982) once wrote a book, La disparition, without t ...

  4. 杭电ACM-LCY算法进阶培训班-专题训练(KMP)

    杭电ACM-LCY算法进阶培训班-专题训练(KMP) 杭电ACM-LCY算法进阶培训班-专题训练(KMP) 剪花布条 Problem Description Input Output Sample I ...

  5. Python:实现knuth morris pratt(KMP)算法(附完整源码)

    Python:实现knuth morris pratt(KMP)算法 from __future__ import annotationsdef kmp(pattern: str, text: str ...

  6. 第四章:2.串 -- 串的模式匹配算法(KMP)

    前言: 目录: 1.串类型的定义 2.串的表示和实现 3.串的模式匹配算法 4.串操作应用举例 正文: 串的模式匹配即,在给定主串S 中,搜索子串T 的位置,如果存在T 则返回其所在位置,否则返回 0 ...

  7. LeetCode 1392. 最长快乐前缀(KMP)

    1. 题目 「快乐前缀」是在原字符串中既是 非空 前缀也是后缀(不包括原字符串自身)的字符串. 给你一个字符串 s,请你返回它的 最长快乐前缀. 如果不存在满足题意的前缀,则返回一个空字符串. 示例 ...

  8. 字符串匹配算法(KMP)

    文章目录 1. KMP由来 2. KMP算法基本原理 3. 代码 4. Leetcode 28. 实现 strStr() 1. KMP由来 上一节说的BM算法是最高效.最常用的字符串匹配算法. 最知名 ...

  9. 字符串的模式匹配(KMP)算法

    一.背景 给定一个主串(以 S 代替)和模式串(以 P 代替),要求找出 P 在 S 中出现的位置,此即串的模式匹配问题. Knuth-Morris-Pratt 算法(简称 KMP)是解决这一问题的常 ...

最新文章

  1. SQLite 源码仓库(Repository)
  2. 9、计算机图形学——纹理的应用(环境贴图、凸凹贴图、法线贴图以及位移贴图)
  3. android studio 断点调试
  4. 【转自元宝兄】关于delphi Com+调用C# DLL的一点说明
  5. 分享懒人张RDLC报表(四)
  6. Linux给命令设置超时时间,Linux命令技巧和时间设置
  7. 今年双 11,阿里业务 100% 上云,云原生有哪些技术亮点?
  8. 加载NMGameX.dll时出错?
  9. elk+redis分布式分析nginx日志
  10. 【Spring 5】响应式Web框架实战(下)
  11. OpenCV Stitching_detailed 详解
  12. css 解析器 java_Java 的 CSS 解析器 jStyleParser
  13. 舍弃Python,为什么知乎选用Go重构推荐系统?
  14. canvas元素简易教程(7)(大部分转自火狐,自己只写了简单的代码分析)
  15. CAN FD实战之CAN FD应用领域及CAN迁移至CAN FD的策略
  16. 浏览器输入URL后,到网页显示,其间发生了什么?
  17. 基于UDP协议的Java聊天室
  18. 来啦!iphone ios免越狱,个性化修改微信提示音!
  19. 冶金矿山数字化价值链分析
  20. 汽车故障诊断方法及注意事项

热门文章

  1. 听说你想用Java去掉或者替换PDF里全部文本?看这
  2. 微信登录界面安卓代码_安卓模拟器微信登录闪退,转圈,停止运行解决方法
  3. JS-Cookie操作
  4. 首先看一下WordPress的古腾堡
  5. 虚拟机openGauss链接Navicat遇到SSL error:tlsv1 alert protocol version FATAL:Failed to Generate the fake salt
  6. 智工教育:天道酬勤,公务员的通关经验分享
  7. CC00399.CloudKubernetes——|KuberNetesCI/CD.V37|——|Jenkins.v03|生产UAT流水线设计.v03|
  8. 做海外网红营销,TikTok、Youtube、Instagram怎么选?
  9. 尚观python培训
  10. 【财务系统】报告如何转换下载为word?这个方法值得借鉴