电商类网站有哪些,如何做游戏渠道网站,江门seo全网营销,做商城网站哪里好思路#xff1a; 这道题要是不卡时间复杂度#xff0c;是道大水题#xff0c;然而字符串的长度到了6次方#xff0c;若使用string中的erase函数#xff0c;看似时间复杂度不高#xff0c;其实#xff0c;每次删除子字符串后#xff0c;后边的字符串需要移动到前面来 这道题要是不卡时间复杂度是道大水题然而字符串的长度到了6次方若使用string中的erase函数看似时间复杂度不高其实每次删除子字符串后后边的字符串需要移动到前面来最坏的情况下时间复杂度能达到On*n)。那么我可以想办法让字符串不要发生移动。可以一个个地将字符串加入到新字符串中加一个字符就判断一次判断是否满足删除条件。显然这种想法跟栈的想法是一样的。
参考代码
#includebits/stdc.h
using namespace std;
#define INF 0x3f3f3f3f
typedef long long ll;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string str, s, d;cin str d;for (auto c : str){s c;if (s.size() d.size() s.substr(s.size() - d.size(), d.size()) d)s.erase(s.size() - d.size(), d.size());}cout s;return 0;
}