首页 > 其他 > 详细

lintcode-easy-Valid Palindrome

时间:2016-03-10 07:04:36      阅读:213      评论:0      收藏:0      [点我收藏+]

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

"A man, a plan, a canal: Panama" is a palindrome.

"race a car" is not a palindrome.

public class Solution {
    /**
     * @param s A string
     * @return Whether the string is a valid palindrome
     */
    public boolean isPalindrome(String s) {
        // Write your code here
        if(s == null || s.length() == 0)
            return true;
        
        s = s.toLowerCase();
        
        int left = 0;
        int right = s.length() - 1;
        
        while(left < right){
            while(left < right && !valid(s.charAt(left)))
                left++;
            while(left < right && !valid(s.charAt(right)))
                right--;
            
            if(s.charAt(left) != s.charAt(right))
                return false;
            else{
                left++;
                right--;
            }
        }
        
        return true;
    }
    
    public boolean valid(char c){
        return (c >= ‘a‘ && c <= ‘z‘) || (c >= ‘0‘ && c <=‘9‘);
    }
    
}

 

lintcode-easy-Valid Palindrome

原文:http://www.cnblogs.com/goblinengineer/p/5260440.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!