https://leetcode-cn.com/problems/valid-palindrome/
public boolean isPalindrome(String s) {
int left = 0;
int right = s.length() - 1;
//while 判断指针移动是否需要终止
while (left < right) {
//找到"第一个"满足条件的 left Java api 判断是否数字或字母
while (left < right && !Character.isLetterOrDigit(s.charAt(left))) {
left++;
}
//找到”第一个“满足条件的 right
while (left < right && !Character.isLetterOrDigit(s.charAt(right))) {
right--;
}
//判断是否满足
if (left < right) {
//注意 java api
if (Character.toLowerCase(s.charAt(left)) != Character.toLowerCase(s.charAt(right))) {
return false;
}
left++;
right--;
}
}
return true;
}