41:Valid Palindrome

来源:互联网 发布:淘宝自动发卡密 编辑:程序博客网 时间:2024/05/03 06:42

本题解法代码的思想及编写参考了网址https://github.com/soulmachine/leetcode#leetcode题解题目

题目: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.

解题代码如下:

//时间复杂度O(n),空间复杂度O(1)class Solution {public:        bool isPalindrome(string s) {        //      transform(s.begin(), s.end(), s.begin(), ::tolower);                auto left = s.begin(), right = --s.end();                while (left < right) {                        if (!::isalnum(*left)) ++left;                        else if (!::isalnum(*right)) --right;                        else if (::tolower(*left) != tolower(*right))                                return false;                        else { ++left, --right; }                }                return true;        }};
0 0
原创粉丝点击