Почему это заняло 54 мс, хотя временная сложность была O (n) [закрыто]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему это заняло 54 мс, хотя временная сложность была O (n) [закрыто]

Сообщение Anonymous »

Недавно я начал решать вопросы по лит-коду и наткнулся на вопросы, в которых нам нужно было удалить все буквенно-цифровые символы из строки, а затем проверить, является ли строка палиндромом или нет.
Я пытался сохранить O(n) временная сложность все равно заняла 54 мс, что слишком долго, может кто-нибудь объяснить. Вот код:

Код: Выделить всё

class Solution {
public:
bool isPalindrome(string s) {
int n = 0;
transform(s.begin(),s.end(),s.begin(),::tolower);
while(s[n] != '\0'){
if(isalnum(s[n]) == 0 ){
s.erase(s.begin()+n);
}
else{
n++;
}
}

string check = s;
reverse(s.begin(),s.end());

if(s == check){
return true;
}
else{
return false;
}

}
};
Мне хотелось знать, какая именно часть кода занимает много времени

Подробнее здесь: https://stackoverflow.com/questions/786 ... ity-was-on
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»