题目
给定一个字符串,判断其是否为一个回文串。只考虑字母和数字,忽略大小写。
样例
"A man, a plan, a canal: Panama" 是一个回文。
"race a car" 不是一个回文。
分析
先除去字母和数字以外的字符,
然后将大小写统一,
此时,只需要首尾互相匹配,若均一致,则是回文
代码
public class Solution {
/**
* @param s: A string
* @return: Whether the string is a valid palindrome
*/
public boolean isPalindrome(String s) {
// write your code here
if (s == null || s.length() <= 1) return true;
char[] data = s.replaceAll("[^a-zA-Z0-9]","").toLowerCase().toCharArray();
for(int i=0, j=data.length-1; i < j; i++, j--) {
if (data[i] != data[j]) return false;
}
return true;
}
}