valid-palindrome

来源:互联网 发布:蚁群算法VB程序 编辑:程序博客网 时间:2024/06/16 21:51

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
“A man, a plan, a canal: Panama”is a palindrome.
“race a car”is not a palindrome.
Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.
For the purpose of this problem, we define empty string as valid palindrome.

判断回文串,两个指针

代码:

class Solution {public:    bool isPalindrome(string s) {        if(s.length()==0)            return true;        int i,j;        for(i = 0,j = s.length()-1;i<j;++i,--j){            while(i < j && !isalnum(s[i]))//测试用例里有数字,所以用isalnum而不能用isalpha                ++i;            while(i < j && !isalnum(s[j]))                --j;            if(tolower(s[i])!=tolower(s[j]))//别忘了转成小写比较                return false;        }        return true;    }};