执行用时 : 16 ms, 在Valid Palindrome的C++提交中击败了21.02% 的用户
内存消耗 : 9.1 MB, 在Valid Palindrome的C++提交中击败了0.72% 的用户
时间复杂度o(n),空间复杂度o(1)
class Solution {
public:
bool isPalindrome(string s) {
if(s == "") return true;
transform(s.begin(), s.end(), s.begin(), ::tolower);
int left = 0, right = s.length() - 1;
while(left < right){
if (!alp_or_num(s[left]) ) {left ++;}
else if (!alp_or_num(s[right])) {right --;}
else if(s[left] != s[right]) return false;
else{
left ++;
right --;
}
}
return true;
}
bool alp_or_num (char &a){
if(a>='0'&&a <='9'||a>='a'&&a<='z'){
return true;
}
return false;
}
};
按照8ms的代码修改代码,结果跑出来还是16ms= =