• 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");
        }
    
    }
    
  • 相关阅读:
    登陆中发现css页面不见了,变成了光秃秃的输入框问题
    servlet基础一
    解决问题:Error:(5, 59) java: 程序包javax.servlet.http不存在
    静态方法的引用
    登录功能之添加验证码(包含切换验证码)
    生成图片验证码(VerifyCode)
    idea编辑器中批量完成注释及批量取消注释
    jdbc连接测试
    利用IO流复制图片
    js 判空
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/7849758.html
Copyright © 2020-2023  润新知