Leetcode125. Valid Palindrome

class Solution {
    public boolean isPalindrome(String s) {
        if(s.length()<1) return true;
        
        s = s.toLowerCase();
        int l = 0, r = s.length()-1;
        while(l<=r){
            while(l<r&&!isAlphaNumeric(s.charAt(l))) l++;
            while(l<r&&!isAlphaNumeric(s.charAt(r))) r--;
            if(l==r) return true;
            if(s.charAt(l)==s.charAt(r)){l++;r--;}
            else return false;
        }
        return true;    //l>r会退出循环,这时应该是最后两个元素是一样的,于是l,r互换导致
    }
    private boolean isAlphaNumeric(char c){
        if((c>='0'&&c<='9')||(c>='a'&&c<='z')) return true;
        return false;
    }
}

Runtime: 4 ms, faster than 84.28% of Java online submissions for Valid Palindrome.
Memory Usage: 39 MB, less than 26.69% of Java online submissions for Valid Palindrome.

posted @ 2019-03-29 11:35  大胖子球花  阅读(72)  评论(0)    收藏  举报