L1-101 别再来这么多猫娘了!

目录

题目链接

掌握库函数(不懂就去查)

坑点

参考代码


题目链接

L1-101 别再来这么多猫娘了! - 团体程序设计天梯赛-练习集

掌握库函数(不懂就去查)

  • find
  • replace

坑点

  • 违禁词中可能是替换词【""】的子串,比如"cen"
  • 如果直接替换掉,那么后果就是无线循环替换,所以需要替换的中间体
  • 中间体最好设置复杂点,避免给定的文本中含有该中间体

参考代码

#include 
#define debug(x) cout << endl << "===>" << #x << "=" << x << endl;
#define output(x) cout << x << endl
#define int long long
using namespace std;


void solve() {
    int n, m;
    cin >> n;
    vector v(n);
    for(int i = 0; i < n; i++) cin >> v[i];
    cin >> m;
    cin.ignore();
    string s;
    getline(cin, s);
    int cnt = 0;
    for(auto t : v) {
        int idx = s.find(t), len = t.length();
        while(idx != -1) {
            s.replace(idx, len, "$_$");
            cnt++;
            idx = s.find(t);
        }
    }
    if(cnt < m) {
        for(int i = 0; i <= s.length() - 3; i++) {
            if(s.substr(i, 3) == "$_$") {
                s.replace(i, 3, "");
            }
        }
        output(s);
    } else {
        output(cnt);
        output("He Xie Ni Quan Jia!");
    }
}

signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    solve();
    return 0;
}

你可能感兴趣的:(团体程序设计天梯赛-练习集,算法)