Thursday, November 28, 2013

Valid Palindrome LeetCode

题意非常简单,一个从头找一个从尾部找。如果碰到非数字和非字母的都跳过,然后比较首尾。

注意两个function: Character.isLetterOrDigit(char x);
Character.toLowerCase(char x);


public boolean isPalindrome(String s) {
        if(s==null || s.length()==0) return true;
       
        int i=0, j=s.length()-1;
        while(i<j){
            char a = s.charAt(i);
            char b = s.charAt(j);
            if(!Character.isLetterOrDigit(a)){
                i++;
                continue;
            }
            if(!Character.isLetterOrDigit(b)){
                j--;
                continue;
            }
            if(Character.toLowerCase(a)!=Character.toLowerCase(b)){
                return false;
            }
            i++; j--;
        }
        return true;
    }

No comments:

Post a Comment