这道题每次累加字符的时候判断是否可以删除,如果可以就马上删掉。
substr的意思是截取一段字符串,erase是删除一段字符串。
#include <bits/stdc++.h>
using namespace std;
int main() {
string a, b, ans;
cin >> a >> b;
for (int i = 0; i < a.size(); i++) {
ans += a[i]; //累加字符
if (ans.size() >= b.size() && ans.substr(ans.size() - b.size(), b.size()) == b) ans.erase(ans.size() - b.size());
//擦除满足条件的部分
}
cout << ans;
return 0;
}
Orz