题目描述
include [HTML_REMOVED]
include [HTML_REMOVED]
using namespace std;
int main()
{
string s;
int n;
cin >> s >> n;
while(n–)
{
int l,r;
string s1,s2;
cin >> l >> r >> s1 >> s2;
string cp = s.substr(l-1,r-l+1);
s.erase(l-1,r-l+1);
string s3 = s1 + s2;
size_t pos = s.find(s3); //寻找前后字符串合并以后的第一个出现的位置
if(pos == string::npos) //如果没有找到,直接将剪切的字符串加在后面
s += cp;
else //如果找到了就在对应位置加入剪切的字符串
s.insert(pos + s1.size(),cp);
}
cout << s;
return 0;
}
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla