zoukankan      html  css  js  c++  java
  • FZU 2122 又见LKity【字符串/正难则反/KMP/把一个字符串中某个部分替换为另一个部分】

    嗨!大家好,在TempleRun中大家都认识我了吧。我是又笨又穷的猫猫LKity。很高兴这次又与各位FZU的ACMer见面了。最近见到FZU的各位ACMer都在刻苦地集训,整天在日光浴中闲得发慌的我压力山大呀!于是,我准备为诸位编写一款小工具——LKity牌文本替换(众怒,:敢不敢更土点!)。这个小工具可以帮助诸位替换代码中的变量等功能,真心是一款编程,刷题必备的神器。其功能如下:

    将给定的字符序列中所有包含给定的子串替换成另外一个给定的字符串。为了让其功能更加强大,替换过程中,将忽略大小写。并且不进行递归替换操作。

    不过,作为笨笨的猫猫,我是心有余而力不足呀!希望诸位ACMer能帮我实现哈。(众FZU的ACMer:”……”);

    Input

    输入包含多组数据。 输入为标准输入,输入包含3行。 第一行为需要查找的字符串S1。S1仅由大写或者小写字母组成,且其长度在区间[1,,100]内。 第二行为要替换的字符串S2。S2由[32,125]的字符组成,且其长度在区间[1,100]内。 第三行为原始字符串S,S由[32,125]的字符组成。且其长度在区间[1,50,000]内。

    Output

    对于每组数据,请输出替换后的字符串。

    Sample Input

    abc
    bc ab
    aaa aaabca 333Abcc##

    Sample Output

    aaa aabc aba 333bc abc##

    【分析】:正难则反。判断是否为给定应该替换之处,是则输出原串字符,否则输出替换串字符。

    【代码】:
    #include <iostream>
    #include<cstring>
    #include<algorithm>
    #include<cstdio>
    #include<streambuf>
    
    using namespace std;
    #define oo 10000000
    int n;
    char s1[500],s2[500],s3[50000+100];
    int main()
    {
        while(~scanf("%s",s1))
        {
            getchar();
            gets(s2);
            gets(s3);
            int n1=strlen(s1);
            int n3=strlen(s3);
    
            for(int i=0;i<n3;i++)
            {
                int k=i,flag=1;
                for(int j=0;j<n1;j++,k++)
                {
                    if(tolower(s3[k]) != tolower(s1[j]))
                    {
                         flag=0;
                         break;
                    }
                }
                if(!flag) printf("%c",s3[i]);
                else
                {
                    i=k-1;
                    printf("%s",s2);
                }
            }
            printf("
    ");
        }
    }
    暴力匹配
  • 相关阅读:
    hadoop 2.5 hdfs namenode –format 出错Usage: java NameNode [-backup] |
    自己动手编译hadoop-2.5.2源码
    CentOS Linux解决Device eth0 does not seem to be present
    Liz Murray成功故事的偶然与必然(转)
    【BZOJ4242】水壶(克鲁斯卡尔重构树,BFS)
    【BZOJ3551】Peaks加强版(Kruskal重构树,主席树)
    【agc023E】Inversions(线段树,动态规划)
    【CF183D】T-shirt(动态规划,贪心)
    【BZOJ2423】最长公共子序列(动态规划)
    【BZOJ2118】墨墨的等式(最短路)
  • 原文地址:https://www.cnblogs.com/Roni-i/p/8013280.html
Copyright © 2011-2022 走看看