• codevs 2761 脏话过滤


    时间限制: 1 s
     空间限制: 8000 KB
     题目等级 : 白银 Silver
     
    题目描述 Description

    某论坛希望打造文明论坛,对于每个帖子需要将脏话换成*输出。

    脏话有38,250,2B,BT,TMD,PIG,SHIT,FUCK。

    若没有一个脏字,则此人文明。

    否则不文明。

    对于有重叠部分的脏话需全部替换。

    输入描述 Input Description

    字符串

    输出描述 Output Description

    修改字符串

    是否文明(YES或NO)。

    样例输入 Sample Input

    322BBBTTFUCPIGKSHITMDD8

    样例输出 Sample Output

    32**B**TFUC***K******D8

    NO

    数据范围及提示 Data Size & Hint

    字符串长度<=100.只有数字和大写字母。

    对字符串处理存在很大缺陷。。

    屠龙宝刀点击就送

    #include <iostream>
    #include <string>
    #include <cstdio>
    using namespace std;
    
    bool flag;
    
    string str,a[9]={"38","250","2B","BT","TMD","PIG","SHIT","FUCK"};
    int ln,k=-1,wz[9],len[9]={2,3,2,2,3,3,4,4};
    bool vis[100+50];
    void find_(int pos)
    {
        int i=0;
        while(i<ln)
        {
            if(str[i]==a[pos][0])
            {
                int x=0;
                int z=i,k=i;
                while(str[k]==a[pos][x]&&k<ln)
                {k++;x++;}
                if(x==len[pos]) 
                {
                    for(int j=z;j<=z+len[pos]-1;j++) vis[j]=1; 
                    flag=1;
                }
            }
            i++;
        }
    }
    int main()
    {
        cin>>str;
        ln=str.length();
        while(k<=6) find_(++k);
        for(int i=0;i<ln;i++) if(vis[i]) str[i]='*';
        cout<<str<<endl;
        flag==0?printf("YES"):printf("NO");
        return 0;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    english note(6.3 to 6.8)
    english note(6.2 to 5.30)
    Lambda表达式
    Python Software Foundation
    eval(input())
    北航操作系统实验2019:Lab4-1代码实现参考
    北航操作系统实验2019:Lab4-1流程梳理
    面向对象设计与构造2019 第二单元总结博客作业
    面向对象设计与构造2019 第一单元总结博客作业
    Java代码度量分析工具:Designite简介
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6719771.html
Copyright © 2020-2023  润新知