Valid Palindrome

来源:互联网 发布:第三方isp网络方案 编辑:程序博客网 时间:2024/05/14 11:13

  

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 eq(char c1,char c2)    {        if(c1 >= 'A' && c1 <= 'Z')c1 =  c1 - 'A' + 'a';        if(c2 >= 'A' && c2 <= 'Z')c2 =  c2 - 'A' + 'a';        return c1 == c2;    }    bool isPalindrome(string s) {        //if(!s.size())return true;        int  bgn = 0, end = s.size();        while(bgn < end)        {            while(bgn < s.size() && !isalnum(s[bgn]))bgn++;            while(end > 0 && !isalnum(s[end]))end--;            if(bgn == s.size() && end == 0)return true;            if(!eq(s[bgn],s[end]))return false;            //最后 前后指针 前后移            bgn++;            end--;        }        return true;    }};



0 0
原创粉丝点击