题目:
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.
解题:这里的回文指字母和数字,忽略标点等其他字符,且忽略大小写
另外根据题意(或面试官)看是否要考虑空字符串。
public class Solution {
public boolean isPalindrome(String s) {
if(s=="")return true;
s=s.toLowerCase();
int left=0,right=s.length()-1;
while(left < right){
if((s.charAt(left)<'a'||s.charAt(left)>'z')&&(s.charAt(left)<'0'||s.charAt(left)>'9')){
left++;
continue;
}
if((s.charAt(right)<'a'||s.charAt(right)>'z')&&(s.charAt(right)<'0'||s.charAt(right)>'9')){
right--;
continue;
}
if(s.charAt(left)==s.charAt(right)){
left++;
right--;
}
else
return false;
}
return true;
}
}