Java solution using about 10 ms.


  • 0
    C
        public boolean isPalindrome(String s) {
    	if(null == s || s.length() <= 1) return true;
        int left = 0, right = s.length() - 1;
        while(left < right){
        	while(left < right && ! Character.isAlphabetic(s.charAt(left)) && ! Character.isDigit(s.charAt(left)))
        		left ++;
        	while(left < right && ! Character.isAlphabetic(s.charAt(right)) && ! Character.isDigit(s.charAt(right)))
        		right --;
        	
        	if(left < right && Character.toLowerCase(s.charAt(left)) != Character.toLowerCase(s.charAt(right)))
        		return false;
        	
        	left ++;
        	right --;
        }
        return true;
    }

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.