# 125. Valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
Note: For the purpose of this problem, we define empty string as valid palindrome.
Example 1:
Input: "A man, a plan, a canal: Panama"
Output: true
Example 2:
Input: "race a car"
Output: false
# Solution
Approach 1: Two pointers.
# Code (Python)
Approach 1:
# Code (C++)
Approach 1:
class Solution {
public:
bool isPalindrome(string s) {
int head = 0;
int tail = s.size() - 1;
while (head < tail)
{
if (!isalnum(s[head]))
head++;
else if (!isalnum(s[tail]))
tail--;
else if (tolower(s[head]) != tolower(s[tail]))
return false;
else
{
head++;
tail--;
}
}
return true;
}
};