给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama" 输出: true
示例 2:
输入: "race a car" 输出: false
class Solution {
public:
bool isPalindrome(string s) {
string::iterator iter1=s.begin();
string::iterator iter2=s.end()-1;
transform(s.begin(),s.end(),s.begin(),::tolower);
cout<<s<<endl;
while(iter1<iter2)
{
//*iter1是0~9 或者字母
if ((*iter1 >= 'a'&& *iter1 <= 'z') || (*iter1 >= 'A'&& *iter1 <= 'Z') || (*iter1 >= '0'&& *iter1 <= '9'))
{
//*iter2是0~9 或者字母
if((*iter2 >= 'a'&& *iter2 <= 'z') || (*iter2 >= 'A'&& *iter2 <= 'Z') || (*iter2 >= '0'&& *iter2 <= '9'))
{
if(*iter1 != *iter2)
return 0;
else
{
iter1++;iter2--;
}
}
else //*iter2 不是0~9 或者字母
iter2--;
}
else
iter1++;
}
return 1;
}
};