判断字符串是否为回文串
判断回文数(双指针法)
常规解法
public boolean IsPalindrome1(String A){
char[] arrayA = A.toCharArray();
int top = 0;
int end = arrayA.length-1;
if(A.equals("") || A == null) //非法输入
return false;
while(top < end){
if(arrayA[top++] != arrayA[end--])
return false;
}
return true;
}
以下为排除标点的解法
public boolean isPalindrome(String s) {
if (s.equals(""))
return false;
int l = -1;
int r = s.length();
while (l < r){
l ++;
r --;
//该题有标点符号
while (l < r && Character.isLetterOrDigit(s.charAt(l))){
l ++;
}
while (l < r && Character.isLetterOrDigit(s.charAt(r))){
r --;
}
if (Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r)))
return false;
}
return true;
}
排序方法
public boolean isPalindrome2(String s){
if ("".equals(s))
return true;
String s2 = new StringBuffer(s).reverse().toString();
if(s.equals(s2)) {
return true;
}
else {
return false;
}
}