125. 验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

输入: "race a car"
输出: false

思路:从头尾开始同时遍历比较 目前 beat 95%
class Solution {
    public boolean isPalindrome(String s) {
        char[] ch = s.toCharArray();
        int i=0,j = ch.length-1;
        for(;i<j;){
            if(Character.isDigit(ch[i])){
                if(Character.isDigit(ch[j])) {
                    if(ch[i]!=ch[j]) return false;
                    else{
                        --j;++i;
                    }
                }
                else if(Character.isLetter(ch[j])) return false;
                else --j;
            } 
           else  if(Character.isLetter(ch[i])){
                if(Character.isLetter(ch[j])){
                    if(ch[i]==ch[j] || ch[i]==ch[j]+32 || ch[i]==ch[j]-32) { ++i;--j;}
                    else return false;
                }
                else if(Character.isDigit(ch[j])) return false;
                else --j;
               }
            
            else ++i;
      }
        return true;
    }
}

 

posted @ 2018-11-10 19:02  吃鱼尾的咩  阅读(129)  评论(0编辑  收藏  举报