判断字符串是否满足回文要求:双指针正逆向扫描,判断相应位置的字符是否相等。
class Solution {
public:
bool isPalindrome(string s) {
int left=0,right=s.length()-1;
while(left<right)
{
if(isChar(s[left])&&isChar(s[right]))
{
if(tolower(s[left])!=tolower(s[right]))
return 0;
else
{
left++;
right--;
}
}
else
{
if(!isChar(s[left]))
left++;
if(!isChar(s[right]))
right--;
}
}
return 1;
}
bool isChar(char ch)
{
if( (tolower(ch)>='a'&&tolower(ch)<='z') || (ch>='0'&&ch<='9') )
return 1;
else
return 0;
}
};