zoukankan      html  css  js  c++  java
  • leetcode — valid-palindrome

    /**
     * Source : https://oj.leetcode.com/problems/valid-palindrome/
     *
     *
     * 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.
     *
     * Note:
     * Have you consider that the string might be empty? This is a good question to ask during an interview.
     *
     * For the purpose of this problem, we define empty string as valid palindrome.
     *
     *
     */
    public class ValidPalindrome {
    
        /**
         * 判断一个字符串是否是回文字符串,只判断字符串里面的字母和数字
         *
         * @param str
         * @return
         */
        public boolean valid (String str) {
            int left = 0;
            int right = str.length()-1;
            while (left <= right) {
                // 过滤左边非数字字母
                while (left < str.length() && !isAlphanumeric(str.charAt(left))) {
                    left++;
                }
                // 过滤右边非数字字母
                while (0 < right && !isAlphanumeric(str.charAt(right))) {
                    right--;
                }
                if (left >= right) {
                    return true;
                }
                if (Character.toLowerCase(str.charAt(left++)) != Character.toLowerCase(str.charAt(right--))) {
                    return false;
                }
            }
            return true;
        }
    
    
        public boolean isAlphanumeric (char c) {
            if ((c >= 48 && c <= 57) || ((c >= 65 && c <= 90) || (c >= 97 && c<= 122))) {
                return true;
            }
            return false;
        }
    
        public static void main(String[] args) {
            ValidPalindrome validPalindrome = new ValidPalindrome();
            System.out.println(validPalindrome.valid("A man, a plan, a canal: Panama") + "-----true");
            System.out.println(validPalindrome.valid("race a car") + "-----false");
        }
    
    }
    
  • 相关阅读:
    Spark提交任务到集群
    在Spark中使用Kryo序列化
    Linux用户与用户组的详解
    Linux一键安装PHP/JAVA环境OneinStack
    Redis常用命令
    MySQL高效分页解决方案集
    linux 发邮件
    Linux 安全
    Linux Shell 文本处理工具集锦
    MySQL 获得当前日期时间(以及时间的转换)
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/7849758.html
Copyright © 2011-2022 走看看