Я пытался сохранить 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