标签:style blog io ar color os sp for on
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) { int len = s.length(), ind = 0; if(len==0) return true; len--; while(ind<len){ while(!isValid(s[ind])&&ind<len){ind++;} while(!isValid(s[len])&&ind<len){len--;} if(!(s[ind]==s[len] || abs(s[ind]-s[len])==32)) return false; ind++; len--; } return true; } bool isValid(char c){ if(c>=‘0‘&&c<=‘9‘) return true; if(c>=‘a‘&&c<=‘z‘) return true; if(c>=‘A‘&&c<=‘Z‘) return true; return false; } };
标签:style blog io ar color os sp for on
原文地址:http://www.cnblogs.com/code-swan/p/4140761.html