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.
My code:
public boolean isPalindrome(String s) {
if(s.length()==0) return true;
int start = 0, end =s.length()-1;
s = s.toLowerCase();
while(start<end){
while((s.charAt(start)>'z'||s.charAt(start)<'a'&&s.charAt(start)>'9'||s.charAt(start)<'0')&&start<end) start++;
while((s.charAt(end)>'z'||s.charAt(end)<'a'&&s.charAt(end)>'9'||s.charAt(end)<'0')&&start<end)
{end--;}
if (s.charAt(start) !=s.charAt(end)) return false;
start++;
end--;
}
return true;
}
总结:棒棒哒