Valid Palindrome

来源:互联网 发布:linux find exec 编辑:程序博客网 时间:2024/05/22 14:45

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.isEmpty()) {            return true;        }        int head = 0, tail = s.length() - 1;        char cHead, cTail;        while(head <= tail) {            cHead = s.charAt(head);            cTail = s.charAt(tail);            if (!Character.isLetterOrDigit(cHead)) {                head++;            } else if(!Character.isLetterOrDigit(cTail)) {                tail--;            } else {                if (Character.toLowerCase(cHead) != Character.toLowerCase(cTail)) {                    return false;                }                head++;                tail--;            }        }        return true;    }


0 0