Leetcode: Valid Palindrome

来源:互联网 发布:音乐播放软件知乎 编辑:程序博客网 时间:2024/06/15 12:06

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) {        int len = s.size();        if(len <= 1) return true;        std::transform(s.begin(), s.end(), s.begin(), ::tolower);        int front = 0;        int back = len-1;        while(front < back) {            if(!isalnum(s[front]))                ++front;            else if(!isalnum(s[back]))                 --back;            else {                if(s[front] == s[back]) {                    ++front;                    --back;                }                else                    break;            }        }        if(front >= back)             return true;        else             return false;    }};


0 0
原创粉丝点击