解题思路:双指针
- 设置左、右
双指针
,向中间判断; - 跳过
非数字字母
的字符; - 将字母全部转化为
小写体
,之后判断。 java
用了库函数,python
纯自己实现(运行时间不太理想)。
public boolean isPalindrome(String s) {
int i=0,j=s.length()-1;
while(i<j){
while(i<j && !Character.isLetterOrDigit(s.charAt(i))) i++;
while(i<j && !Character.isLetterOrDigit(s.charAt(j))) j--;
if(Character.toLowerCase(s.charAt(i))!=Character.toLowerCase(s.charAt(j))) return false;
i++;j--;
}
return true;
}