#include<bits/stdc++.h>
using namespace std;
int n;
string s;
int main()
{
cin >> s >> n;
while(n -- )
{
int l, r;
string sl, sr, j, t; //定义局部变量有一个好处,不用每次clear()
cin >> l >> r >> sl >> sr; //sl和sr分别表示要插入的前面和后面字符串
l--, r--; //题意中的l和r是从1开始算的,所以--就是string里对应的l和r
for(int i = l; i <= r; i ++ ) j += s[i];
s.erase(l, j.size());
t = sl + sr; //把前面和后面加起来
int p = s.find(t); //若不存在返回-1,存在则返回的是t第一个字符在string中的下标
if(p == -1) s += j; //不存在直接加在末尾
else s.insert(p + sl.size(), j);
//insert第一个参数pos是在pos前插入j,所以为p加上sl.size()
}
cout << s << endl;
return 0;
}
PTA L1-094 剪切粘贴(2023 天梯赛)
于 2023-04-23 22:44:10 首次发布