Valid Palindrome
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) { size_t len = s.size(); if (len == 0) return true; int l = 0; int r = len - 1; while(l < r) { while(!isalnum(s[l]) && l < r) l++; while(!isalnum(s[r]) && l < r) r--; if (tolower(s[l]) != tolower(s[r])) return false; l++; r--; } return true; } };