标签:
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.
Analyse: 注意大小写形式是等价的,即:A与a等价
1 class Solution { 2 public: 3 bool isPalindrome(string s) { 4 if(s.length() == 0) return true; 5 6 for(int i = 0, j = s.length() - 1; i < j; i++, j--){ 7 if(!isalnum(s[i]) && !isalnum(s[j])) continue; 8 9 if(!isalnum(s[i])) j++; 10 else if(!isalnum(s[j])) i--; 11 else{ 12 int compare = abs(s[i] - s[j]); 13 if(compare && compare != 32) return false; 14 } 15 } 16 return true; 17 } 18 };
标签:
原文地址:http://www.cnblogs.com/amazingzoe/p/4419789.html