Palindrome String

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

Example:

"A man, a plan, a canal: Panama" is a palindrome.

"race a car" is not a palindrome.

Return 0 / 1 ( 0 for false, 1 for true ) for this problem

Method:

Two pointer

Solution:

Time: O(n)
Space: O(1)

public class Solution {
    public int isPalindrome(String A) {
        char[] arr = A.toCharArray();
        int left = 0;
        int right = arr.length - 1;
        while (left <= right) {
            if (!Character.isLetterOrDigit(arr[left])) {
                left ++;
            } else if (!Character.isLetterOrDigit(arr[right])) {
                right --;
            } else if (Character.toLowerCase(arr[left]) != Character.toLowerCase(arr[right])) {
                return 0;
            } else {
                left ++;
                right --;
            }
        }
        return 1;
    }
}