解答为:
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;
}
}
这道题本身不是重点,重点在于
*如何判断一个char型是字母或是数字;
*对于大小写字母,数字等都可以使用 Character.toLowerCase() 的方法,不会报错;
*还有内置函数的方法来判断:
Character.isLetterOrDigit( char ch ) // 判断ch是否是字母或数字字符,如'a','b‘,'1','2',是返回true。否则返回false
Character.isLetter( char ch ) // 判断ch是否是字母字符,如'a','b',是返回true。否则返回false
Character.isDigit( char ch ) // 判断ch是否是数字字符,如'1','2',是返回true。否则返回false