码迷,mamicode.com
首页 > 其他好文 > 详细

Valid Palindrome

时间:2014-10-20 21:22:29      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:style   color   io   ar   java   strong   sp   on   amp   

题目:给定一个字符串,判断字符串是否为回文串(只考虑字符和数字,忽略大小写)

算法:设置两个索引,分别从两端向中间扫描,扫描的时候忽略字符和数字以外的一切。

需要注意的是,空字符串也是回文串,而且因为只考虑字符和数字,所以“*/*-”被视为空字符串,所以被认为是回文串

public class Solution {
    /**
     * Check if string is palindrome.
     * <p>Empty String is palindrome, 
     * because palindrome only consider alphanumeric characters,
     * so any string like "*-+*" is consider to be palindrome. 
     * @param s
     * @return
     */
    public boolean isPalindrome(String s) {
        if (null == s) {
            return false;
        }
        if (s.equals("")) {
            return true;
        }
        
        boolean isPalindrome = true;
        int iHead = 0;
        int iTail = s.length() - 1;
        char[] strs = s.toLowerCase().toCharArray();
        while (iHead <= iTail) {
            while (iHead<strs.length 
                && !Character.isLetter(strs[iHead])
                && !Character.isDigit(strs[iHead])) {
                ++iHead;
            }
            while (iTail >= 0 
                && !Character.isLetter(strs[iTail])
                && !Character.isDigit(strs[iTail])) {
                --iTail;
            }
            if (iHead > iTail) {
                break;
            } else if (strs[iHead] != strs[iTail]) {
                return false;
            }
            
            ++iHead;
            --iTail;
        }// end of while
        
        return isPalindrome;
    }
}

Valid Palindrome

标签:style   color   io   ar   java   strong   sp   on   amp   

原文地址:http://blog.csdn.net/yeweiouyang/article/details/40316521

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!