Итак, это функция, которую я написал, чтобы решить проблему, называемую «самая длинная палиндромическая подстроение» на LeetCode < /p>
Вот описание проблемы и ограничения: < /p>
Учитывая строку S, возвращайте самую длинную палиндромскую подставку в s. 1000
А вот код, который я написал:
std::string Biggest_palindromic(std::string Original_str)
{
std::string Biggest_pl = "";
std::string Current_buff;
Current_buff.reserve(Original_str.size());
int i = 0;
while (i != Original_str.size()) {
for (int j = i; j < Original_str.size(); j++) {
Current_buff.insert(0, 1, Original_str[j]);
std::string Reversed_buff = Current_buff;
std::reverse(Reversed_buff.begin(), Reversed_buff.end());
if (Current_buff == Reversed_buff) {
if (Current_buff.size() > Biggest_pl.size())
Biggest_pl = Current_buff;
}
}
Current_buff = "";
i++;
}
return Biggest_pl;
}
< / code> это «логически» работает нормально (я думаю?), Но он достигает «превышенного срока» на 78 -й Testcase. /> s = "Ababababababababababababababababababababababababababababababababababababababab, Babababababababababababababababababababababababababababababababababababababababab, Abababababababababababababababababababababababababababababababababababababababababababab, Babababababababababababababababababababababababababababababababababababababababab, Abababababababababababababababababababababababababababababababababababababababababababab, Babababababababababababababababababababababababababababababababababababababababab, Abababababababababababababababababababababababababababababababababababababababababababab, Bababababababababababababababababababababababababababababababababababababababab, too /> From what I've read about "time limit exceeded", it basically means my code is too slow.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... n-leetcode