解答為:
class Solution {
public boolean isPalindrome(String s) {
if(s.length() < 1){
return true;
}
List<Character> list = new ArrayList<Character>();
for (char c : s.toCharArray()) {
if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')){
list.add(Character.toLowerCase(c));
}
}
int left = 0;
int right = list.size() - 1;
while(left <= right){
if(list.get(left) != list.get(right)){
return false;
}
left++;
right--;
}
return true;
}
}
這道題本身不是重點(diǎn),重點(diǎn)在于
*如何判斷一個(gè)char型是字母或是數(shù)字;
*對(duì)于大小寫字母,數(shù)字等都可以使用 Character.toLowerCase() 的方法,不會(huì)報(bào)錯(cuò);
*還有內(nèi)置函數(shù)的方法來判斷:
Character.isLetterOrDigit( char ch ) // 判斷ch是否是字母或數(shù)字字符,如'a','b‘,'1','2',是返回true。否則返回false
Character.isLetter( char ch ) // 判斷ch是否是字母字符,如'a','b',是返回true。否則返回false
Character.isDigit( char ch ) // 判斷ch是否是數(shù)字字符,如'1','2',是返回true。否則返回false