从更大的琴弦中消除琴弦

时间:2019-10-24 07:24:39

标签: c++

我正在尝试从字符串中消除子字符串。我有以下代码,它可以工作,但是当我在在线判断器中实施时,它给出了超出时间限制的错误。有没有更好的方法来改善算法时间复杂度?另外,如果我不想以任何方式使用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;
}

0 个答案:

没有答案