Saturday, May 9, 2015

Valid Palindrome

来源:Leetcode

原帖:https://oj.leetcode.com/problems/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.
Solution: traverse from both side.

代码:
 #include <cctype>   
 class Solution {  
 public:  
   bool isPalindrome(string s) {  
     if (s.empty()) return true;  
     int start = 0, end = s.size() - 1;  
     while (start < end) {  
       if (!isalnum(s[start])) {  
         start++; continue;  
       }  
       if (!isalnum(s[end])) {  
         end--; continue;  
       }  
       if (tolower(s[start]) != tolower(s[end])) return false;  
         start++; end--;  
     }  
     return true;  
   }  
 };  
   

No comments:

Post a Comment