Valid Palindrome

题目地址:
https://leetcode.com/problems/valid-palindrome/#/description

题目:
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.

解题思路:
这道题是典型的双指针问题。

代码:



public boolean isPalindrome(String s) {
    if(s == null){
        return false;
    }
    if(s.length() == 0){
        return true;
    }
    s = s.toLowerCase();
    int low = 0, high = s.length() -1;
    while(low < high){
        while(low < high && !Character.isLetterOrDigit(s.charAt(low))){
            low++;
        }
        while(low < high && !Character.isLetterOrDigit(s.charAt(high))){
            high--;
        }
        if(s.charAt(low) != s.charAt(high)){
            return false;
        }
        low++;
        high--;
    }
    return true;
}

Comments

Popular Posts