有效回文串

给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写。

注意事项

你是否考虑过,字符串有可能是空字符串?这是面试过程中,面试官常常会问的问题。

在这个题目中,我们将空字符串判定为有效回文。

 

    bool isPalindrome(string& s) {
        // Write your code here
        transform(s.begin(), s.end(), s.begin(), ::tolower);//转小写,存回s
        auto left = s.begin(), right = prev(s.end());//s.end--
        while (left < right) {
            if (!::isalnum(*left))  ++left;//isalnum判断是不是字母或数字,不是,返回0
            else if (!::isalnum(*right)) --right;
            else if (*left != *right) return false;
            else{ left++, right--; }
        }
        return true;
    }

posted on 2016-07-17 16:46  gilin  阅读(100)  评论(0)    收藏  举报