题目描述:
判断一个字符串是否是回文串。
注意只有大小写字母和数字才算是串的内容,其他字符都跳过。
思路:左右两个指针逐渐往中间逼近就可以了。
isalnum()函数是判断是否是字母数字的,其他字符跳过;tolower()函数是将字母数字都转换成小写进行判断。
算法实现:
class Solution{
public:
bool isPalindrome(string s){
int len=s.length(),l=0,r=len-1;
while(l<r){
if(!isalnum(s[l])) l++;
else if(!isalnum(s[r])) r--;
else if(tolower(s[l])==tolower(s[r])) {l++;r--;}
else return false;
}
return true;
}
};