解题思路:双指针
- 设置左、右
双指针,向中间判断; - 跳过
非数字字母的字符; - 将字母全部转化为
小写体,之后判断。 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;}
