题目:125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
解答:
bool isPalindrome(char * s)
{
// 左指针
char* left=s;
// 右指针
char* right=s;
// 使得右指针指向最后一个字母
int count=strlen(s)-1;
while(count--)
{
right++;
}
while(left<right)
{
// 左指针找到字母或数字字符
while(left<right && !isalnum(*left))
{
left++;
}
// 右指针找到字母或数字字符
while(left<right && !isalnum(*right))
{
right--;
}
// 如果左指针为大写字母,转化为小写字母
if(*left>='A'&&*left<='Z')
{
*left+=32;
}
// 如果右指针为大写字母,转化为小写字母
if(*right>='A'&&*right<='Z')
{
*right+=32;
}
// 左右指针进行对比
if(*left!=*right)
{
return false;
}
left++;
right--;
}
return true;
}