SSL 2058_字符串编辑_字符串

Posted nidhogg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSL 2058_字符串编辑_字符串相关的知识,希望对你有一定的参考价值。

题目描述

为了对一些资料进行保密,奶牛们要对某些文章进行编辑。编辑的方法很奇特:要把原有文章的某些词句按照某些规则用另一些词句代替。 
规则的形式如下:原串?新串,表示把原串替换成新串。假设有n条规则,第i规则的原串和新串分别为Mi和Ni,则编辑按如下过程进行:开始编辑时,先使用第一条规则,把文章中出现的第一个M1替换成N1,如果替换后的新文章还存在M1,则如上处理,直到文章不存在M1为止;然后用同样的方法使用第2,第3,……,第n条规则进行替换,直到所有的规则都用完为止。注意: 
? 每次都要从文章开头开始找要替换的词句 
? 一条规则一旦使用完后,将不能再使用 
? 每一篇文章都是可编辑的 


#include <stdio.h>
#include <string>
#include <cstring>
#include <iostream>
using namespace std;
struct arr
{
    string st, ed;
}a[110];
int main()
{
    int n;
    scanf("%d\n", &n);
    for (int i = 1; i <= n; i++)
    { 
        getline(cin, a[i].st);
        getline(cin, a[i].ed);
    }
    string st;
    getline(cin, st);
    for (int i = 1; i <= n; i++)
    {
        int l = st.find(a[i].st);
        while (l >= 0)
        {
            st.replace(l, a[i].st.size(), a[i].ed);
            l = st.find(a[i].st);
        }
    }
    if (st.size() <= 80)
        cout << st << endl;
    else
    {
        st[80] = /0;
        cout << st << endl;
    }
}

 

以上是关于SSL 2058_字符串编辑_字符串的主要内容,如果未能解决你的问题,请参考以下文章

BZOJ_2058_[Usaco2010 Nov]Cow Photographs_逆序对

[bzoj2058][Usaco2010 Nov]Cow Photographs_树状数组_动态规划

Atom编辑器折腾记_(15)JS代码片段补全(插件:javascript-snippets)

比较 C# 中的字符串片段并从集合中删除项目

c# https请求忽略证书验证_各种编程语言忽略http的SSL证书认证

远程连接mysql8.0,Error No.2058 Plugin caching_sha2_password could not be loaded