这题感觉没什么,就是判断输入是否为数字,字符时比较麻烦,其他没啥。
bool isPalindrome(string s) {
int lens = s.length();
if(lens==0)
return true;
int i=0,j=lens-1;
while(i<j)
{
if(s[i]<'0')
{
i++;
continue;
}
if(s[i]>'9'&&s[i]<'A')
{
i++;
continue;
}
if(s[i]>'Z'&&s[i]<'a')
{
i++;
continue;
}
if(s[i]>'z')
{
i++;
continue;
}
if(s[j]<'0')
{
j--;
continue;
}
if(s[j]>'9'&&s[j]<'A')
{
j--;
continue;
}
if(s[j]>'Z'&&s[j]<'a')
{
j--;
continue;
}
if(s[j]>'z')
{
j--;
continue;
}
if (s[i]>='0'&&s[i]<='9'||s[j]>='0'&&s[j]<='9')
{
if(s[i]==s[j])
{
i++;
j--;
}
else
return false;
}
else
{
if (s[i]==s[j]||s[i]-s[j]==32||s[i]-s[j]==-32)
{
i++;
j--;
}
else
return false;
}
}
return true;
}