这里写自定义目录标题
- [2023-8-24 09:31:12](#2023-8-24 09:31:12)
2023-8-24 09:31:12
最关键的是 注意 题目中的 "字母和数字都属于字母数字字符。"
使用ascii码进行判断就行了
java
class Solution {
public boolean isPalindrome(String s) {
int p = 0, q = s.length() - 1;
while (p <= q){
char a = s.charAt(p);
char b = s.charAt(q);
boolean check_a_small = a >= 97 && a <= 122;
boolean check_a_big = a >= 65 && a <= 90;
boolean check_a_num = a >= 48 && a <= 57;
boolean check_b_small = b >= 97 && b <= 122;
boolean check_b_big = b >= 65 && b <= 90;
boolean check_b_num = b >= 48 && b <= 57;
// 找到往后找到 字母 或者 是数字
if(!(check_a_small || check_a_big || check_a_num)){
p++;
continue;
}
// 找到往前找到 字母 或者 是数字
if(!(check_b_small || check_b_big || check_b_num)){
q--;
continue;
}
// 如果是大写字母,转化为小写
if(check_a_big){
a = (char)(a+32);
}
// 如果是大写字母,转化为小写
if(check_b_big){
b = (char)(b+32);
}
// 如果是不相等的,就不会回文串,直接返回 false
if(a != b) return false;
p++;
q--;
}
return true;
}
}