有效回文串

来源:互联网 发布:本地搜索引擎seo 编辑:程序博客网 时间:2024/06/10 00:10

给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写。

 注意事项

你是否考虑过,字符串有可能是空字符串?这是面试过程中,面试官常常会问的问题。

在这个题目中,我们将空字符串判定为有效回文。

样例

"A man, a plan, a canal: Panama" 是一个回文。

"race a car" 不是一个回文。

挑战 

O(n) 时间复杂度,且不占用额外空间。


public boolean isPalindrome(String s) {        if (s.equals("")) return true;        s = s.toLowerCase();        int i = 0, j = s.length() - 1;        while (i < s.length() && j >= 0 && i <= j) {            char left = s.charAt(i);            char right = s.charAt(j);            if (isVaild(left) && isVaild(right)) {                if (left != right) return false;                i++;                j--;            } else {                if (!isVaild(left)) i++;                if (!isVaild(right)) j--;            }        }        return true;    }    public boolean isVaild(char c) {        if (c >= 'a' && c <= 'z' || c >= '0' && c <= '9') return true;        return false;    }

原创粉丝点击