我正在尝试从字符串中消除子字符串。我有以下代码,它可以工作,但是当我在在线判断器中实施时,它给出了超出时间限制的错误。有没有更好的方法来改善算法时间复杂度?另外,如果我不想以任何方式使用substr方法,那么您会看到什么呢?
代码:
#include <iostream>
//#include <cmath>
//#include <climits>
#include <string>
//#include <algorithm>
using namespace std;
int main() {
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
string s, s1, sub;
getline(cin, s);
getline(cin, sub);
int l = s.length(), len = sub.length();
int e = (l - len);
for (int i = 0; i <= e; i++) {
if (s.substr(i, len) == sub) {
s = s.substr(0, i) + s.substr(i + len, l);
cout << s;
break;
}
}
return 0;
}