判断字符串是否为对称的,主要是不考虑非字母非数字的字符。
class Solution {
public:
bool isPalindrome(string s) {
if(s.size()==0)
return true;
int len=s.size();
if(len==1)
{
if(isalnum(s[0])) return true;
else return false;
}
string::iterator first,last;
first=s.begin();
last=prev(s.end());
while(first<last)
{
if(isalnum(*first)&&isalnum(*last)&&(tolower(*first)!=tolower(*last)))
{
return false;
}
if(isalnum(*first)&&isalnum(*last)&&(tolower(*first)==tolower(*last)))
{
++first;
--last;
}
if(!isalnum(*first)) ++first;
if(!isalnum(*last)) --last;
}
return true;
}
};