标签:
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.
1 class Solution { 2 public: 3 bool isPalindrome(string s) { 4 int len=s.size(); 5 int start=0; 6 int end=len-1; 7 8 while(start<=end) 9 { 10 while(start<=end&&!isalnum(s[start])) 11 start++; 12 while(start<=end&&!isalnum(s[end])) 13 end--; 14 15 if(start>end) break; 16 17 if(isdigit(s[start])&&s[start]!=s[end]) return false; 18 19 if(tolower(s[start])!=tolower(s[end])) return false; 20 21 start++; 22 end--; 23 } 24 25 return true; 26 27 } 28 };
标签:
原文地址:http://www.cnblogs.com/jawiezhu/p/4521559.html