125 Valid Palindrome 验证回文字符串

给定一个字符串,确定它是否是回文,只考虑字母数字字符和忽略大小写。
例如:
"A man, a plan, a canal: Panama" 是回文字符串。
"race a car" 不是回文字符串。
注意:
你有考虑过这个字符串可能是空的吗? 在面试中这是一个很好的问题。
针对此题目,我们将空字符串定义为有效的回文字符串。
详见:https://leetcode.com/problems/valid-palindrome/description/

Java实现:

class Solution {
    public boolean isPalindrome(String s) {
        int size=s.length();
        if(s.isEmpty()||size==0){
            return true;
        }
        char[] chars=s.toLowerCase().toCharArray();
        int left=0;
        int right=size-1;
        while(left<right){
            if(!isAlphaOrNum(chars[left])){
                ++left;
            }else if(!isAlphaOrNum(chars[right])){
                --right;
            }else if(chars[left]==chars[right]){
                ++left;
                --right;
            }else{
                return false;
            }
        }
        return true;
    }
    private boolean isAlphaOrNum(char ch){
        if(ch>='a'&&ch<='z'){
            return true;
        }
        if(ch>='0'&&ch<='9'){
            return true;
        }
        return false;
    }
}

 

posted on 2018-04-05 16:21  lina2014  阅读(144)  评论(0编辑  收藏  举报

导航