题目是说给你一个替换串和目标串。把一个长串中的所有的替换串替换为目标串而且不递归地替换。

很简单,直接做一次KMP然后直接替换。

注意替换后跳到替换串的尾部。

注意大小写的问题。

#include <iostream>
#include <cstdio>
#include <cstring>
#define maxn 50550
using namespace std; char s0[],s1[],s[maxn];
int f[],L;
bool tag[maxn];
int n,m; bool equal(char c1,char c2)
{
if (c1==c2) return true;
if (c1>c2) swap(c1,c2);
c1=c1-'A'+'a';
if (c1==c2) return true;
return false;
} void getfail()
{
memset(f,,sizeof f);
f[]=;
for (int i=; s0[i]; i++)
{
int k=f[i-];
while (k && equal(s0[k+],s0[i])==false) k=f[k];
if (equal(s0[k+],s0[i])) f[i]=k+;
else f[i]=;
}
} void trans(char ss[])
{
for (int i=; ss[i]; i++)
{
if (ss[i]>='A' && ss[i]<='Z') ss[i]=ss[i]-'A'+'a';
}
} int main()
{
while (gets(s0+))
{
gets(s1+),gets(s+);
getfail();
L=strlen(s0+);
memset(tag,false,sizeof tag);
int cur=;
for (int i=; s[i]; i++)
{
if (equal(s0[cur+],s[i])) cur++;
else
{
int k=f[cur];
while (k && equal(s0[k+],s[i])==false) k=f[k];
if (equal(s0[k+],s[i])) cur=k+;
else cur=;
}
if (cur==L)
{
tag[i]=true;
cur=;
}
}
for (int i=; s[i]; i++)
{
if (tag[i+L-]==true)
{
printf("%s",s1+);
i=i+L-;
}
else printf("%c",s[i]);
}
printf("\n");
}
return ;
}

最新文章

  1. ASP.net MVC 学习笔记(一)-一些不同点
  2. Python3基础 访问列表 大于等于指定索引值的所有元素
  3. Linux中exit与_exit的区别
  4. Java Eclipse进行断点调试
  5. MVC 使用HandleErrorAttribute统一处理异常
  6. 各种demo——CI框架学习
  7. IndexedDB
  8. Asp.Net异常:&quot;由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值&quot;的解决方法
  9. 50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段
  10. Android:ListViewAdapter
  11. 简单类型对象 String
  12. 小程序swiper 滑块视图容器
  13. Dubbo 入门学习笔记
  14. 【XShell】xshell评估过期解决办法
  15. php5.6.11编译安装报错configure: error: Don&#39;t know how to define struct flock on this system
  16. 在Linux终端安装Julia
  17. linux driver ------ platform模型,通过杂项设备(主设备号是10)注册设备节点
  18. 2018.10.26 NOIP模拟 瓶子 (dp/贪心)
  19. C#程序如何捕捉未try/catch的异常——不弹“XXX已停止工作”报错框
  20. Maven实战——Gradle,构建工具的未来?

热门文章

  1. 2016-2017-2015329 《Java程序设计》第4周学习总结
  2. day1 函数 (独立功能代码块)
  3. RHCSA-day4
  4. 【LG4294】[WC2008]游览计划
  5. Android 学习1
  6. 【JUC源码解析】Semaphore
  7. python全栈开发-前方高能-内置函数2
  8. python基本数据类型2
  9. springmvc传参---LocalDateTime、Date等时间类型转换
  10. Digital Roots:高精度