先把大写的字母变成小写的,用大写字母+32即可变为小写字母。
写循环跳过字符。
然后判断是否相等即可。具体代码如下:
class Solution {
public:
bool isPalindrome(string s) {
int size=s.size();
int begin=0;
int end=s.size()-1;
for(int i=0;i<size;i++)//大写转小写
{
if(s[i]>64&&s[i]<91)
{
s[i]=s[i]+32;
}
}
while(begin<end)
{
while((s[begin]>'z'||s[begin]<'a')&&(s[begin]<'0'||s[begin]>'9'))
{
begin++;
if(begin>size)
{
return true;
}
}
while((s[end]>'z'||s[end]<'a')&&(s[end]<'0'||s[end]>'9'))
{
end--;
}
if(s[begin]!=s[end])
{
return false;
}
begin++;
end--;
}
return true;
}
};