怎么优化代码??在 leetcode 时间限制超过

时间:2021-07-17 14:59:14

标签: c++ string substring substr

我正在尝试解决返回字符串中最长回文子串的问题 它在小字符串上工作正常,但在长字符串上它会给出“时间限制超过”错误。 我如何优化它以及我到底做错了什么? 我是初学者所以请帮助...

    string pal(string s){
    
string longest;

if (s.length() == 0) {
    return "";
}
if (s.length() == 1) {
    return s;
}
if (s.length() == 2) {
    if (s == reverse(s)) {
        return s;
    }
    else {
        longest += s[0];
        return longest;
    }
}
else {
    int start;
    int max;
    max = 0;
    for (int i = 0; i < s.length(); i++) {
        string temp = "";

        for (int j = i; j < s.length(); j++) {
            temp += s[j];

            if (temp == reverse(temp) && temp.length() > 1) {
                if (temp.length() > max) {
                    start = i;
                    max = temp.length();
                }
            }
        }
    }
    for (int i = start; i < start + max; i++) {
        longest += s[i];
    }
    if (max == 0) {
        return longest += s[0];
    }
}
return longest;

}

0 个答案:

没有答案
相关问题