简单写法
class Solution {
bool isLetterorNum(char ch)
{//判断是否是字符或者数字
if((ch>='0'&&ch<='9')||(ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
{
return true;
}
else
{
return false;
}
}
public:
bool isPalindrome(string s) {
for(auto& ch:s)
{
//这样转换完可以忽略大小写
if(ch>='A'&&ch<='Z')
{
ch=ch+32;
}
}
int begin=0;
int end=s.size()-1;
while(begin<end)
{
while(begin<end&& !(isLetterorNum(s[begin])))
{
begin++;
}
while(begin<end&&!(isLetterorNum(s[end])))
{
end--;
}
if(s[begin]!=s[end])
{
return false;
}
begin++;
end--;
}
return true;
}
};
复杂写法