题目链接:click~
/*题意:判断一串字符串是否是回文串,忽略标点和空格*/
/**
*思路:两个指针,一个从前往后遍历,另一个从后往前遍历,每次判断
* 两指针指向的值是否相同
*/
class Solution {
public:
bool isPalindrome(string s) {
int len = s.size();
if(len == 0) return true;
int i = 0, j = len-1;
while(i <= j) {
while(!isalpha(s[i]) && !isdigit(s[i]) && i < len) i++;//过滤掉标点符号和空格
while(!isalpha(s[j]) && !isdigit(s[j]) && j >= 0) j--;
if(tolower(s[i]) == tolower(s[j]) || s[i] == s[j])
i++, j--;
else return false;
}
return true;
}
};