双指针法
利用双指针逐一对比,遇到不合法字符时跳过。
class Solution {
public boolean isPalindrome(String s) {
s = s.toLowerCase();
int i = 0, j = s.length() - 1;
while (i < j) {
while (!Character.isLetter(s.charAt(i)) && !Character.isDigit(s.charAt(i)) && i < j) i++;
while (!Character.isLetter(s.charAt(j)) && !Character.isDigit(s.charAt(j)) && i < j) j--;
if (s.charAt(i) != s.charAt(j) && i < j) return false;
i++;
j--;
}
return true;
}
}
原文:https://www.cnblogs.com/fromneptune/p/13246465.html