题目链接:valid-palindrome
/**
*
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 ValidPalindrome {
// 475 / 475 test cases passed.
// Status: Accepted
// Runtime: 339 ms
// Submitted: 0 minutes ago
static boolean isPalindrome(String s) {
s = s.toLowerCase();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if(( c - 'a' >= 0 && c - 'a' < 26)
|| ( c - '0' >= 0 && c - '0' < 10))
sb.append(s.charAt(i));
}
String str = sb.toString();
int left = 0;
int right = str.length() - 1;
while(left < right) {
if(str.charAt(left) != str.charAt(right)) return false;
left ++;
right --;
}
return true;
}
public static void main(String[] args) {
System.out.println(isPalindrome("A man, a plan, a canal: Panama"));
System.out.println(isPalindrome("race a car"));
System.out.println(isPalindrome("1a2"));
}
}