Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
"A man, a plan, a canal: Panama"
is a palindrome.
"race a car"
is not a palindrome.
bool isPalindrome(char* s) {
int length = strlen(s);
int start=0;
int end=length-1;
int i;
//将字符串的大写字母转换成小写字母
for(i=0;i<length;i++)
{
if(s[i]>='A' && s[i]<='Z')
{
s[i] = s[i] + 32;
}
}
while(start<end)
{
while(start<end && (s[start]<'a' || s[start]>'z')&&(s[start]<'0'||s[start]>'9'))
start++;
while(start<end && (s[end]<'a' || s[end]>'z')&&(s[end]<'0'||s[end]>'9'))
end--;
if(s[start] == s[end])
{
start++;
end--;
}else
{
return false;
}
}
return true;
}