标签:
Problem Description嗨!大家好,在TempleRun中大家都认识我了吧。我是又笨又穷的猫猫LKity。很高兴这次又与各位FZU的ACMer见面了。最近见到FZU的各位ACMer都在刻苦地集训,整天在日光浴中闲得发慌的我压力山大呀!于是,我准备为诸位编写一款小工具——LKity牌文本替换(众怒,:敢不敢更土点!)。这个小工具可以帮助诸位替换代码中的变量等功能,真心是一款编程,刷题必备的神器。其功能如下:
将给定的字符序列中所有包含给定的子串替换成另外一个给定的字符串。为了让其功能更加强大,替换过程中,将忽略大小写。并且不进行递归替换操作。
不过,作为笨笨的猫猫,我是心有余而力不足呀!希望诸位ACMer能帮我实现哈。(众FZU的ACMer:”……”);
Input
Output
Sample Input
Sample Output
Source#include<stdio.h>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
using namespace std;
const int maxn = 1e5+200;
char p[1020],txt[maxn],rpl[1020];
bool jud(char a, char b){
if(a == b){
return true;
}else{
if(a>=‘a‘&&a<=‘z‘){
if(b>=‘A‘&&b<=‘Z‘){
if(a-32 == b)
return true;
}
}
if(a>=‘A‘&&a<=‘Z‘){
if(b>=‘a‘&&b<=‘z‘){
if(a+32 == b)
return true;
}
}
}
return false;
}
int main(){
while(gets(p)!=NULL){
gets(rpl);
gets(txt);
int lenp = strlen(p);
int lenr = strlen(rpl);
int lent = strlen(txt);
int i , j;
for(i = 0, j = 0; i < lent; i++){
if(jud(p[j],txt[i])){
j++;
if(j == lenp){
for(int k = 0; k < lenr; k++){
printf("%c",rpl[k]);
}
j = 0;
}
}else{
i -= j; //回退i指针
j = 0;
printf("%c",txt[i]);
}
}
for(int k = lent-j; k < lent; k++){
printf("%c",txt[k]);
}
puts("");
}
return 0;
}
/*
aab
kk
AAAB
aab
kk
abaa
*/
FZU 2122——又见LKity——————【字符串匹配、暴力】
标签:
原文地址:http://www.cnblogs.com/chengsheng/p/5340093.html