class Solution {
public:
bool isPalindrome(string s) {
int start = 0;
int end = s.length() - 1;
while(start < end) {
while(!isAlpha(s[start]) && start < s.length()){
start++;
}
while(!isAlpha(s[end]) && end >= 0) {
end--;
}
if(start < s.length() && end >= 0 && !iEqual(s[start], s[end])) {
return false;
} else {
start++;
end--;
}
}
return true;
}
bool isAlpha(char c) {
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9');
}
bool iEqual(char c1, char c2) {
if (c1 >= 'A' && c1 <= 'Z') {
c1 = c1 + ('a' - 'A');
}
if (c2 >= 'A' && c2 <= 'Z') {
c2 = c2 + ('a' - 'A');
}
return c1 == c2;
}
};
4/14/2014
Leetcode -- Valid Palindrome
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment