image.png
class Solution {
public boolean isPalindrome(String s) {
// 定義頭尾兩個指針
int l = 0;
int r = s.length() - 1;
// 當字符串長度為0直接返回true
if(s.length() == 0){
return true;
}
while(l < r){
// 判斷當前元素是否為字母或數(shù)字
if(!Character.isLetterOrDigit(s.charAt(l))){
l++;
}else if(!Character.isLetterOrDigit(s.charAt(r))){
r--;
}else{
// 判斷左右指針的元素是否相等,若不等返回false
if(Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r))){
return false;
}
l++;
r--;
}
}
return true;
}
}