• LeetCode125. 验证回文串


    一、题目描述

    二、解法

    思路1:双指针。

    思路2:reverse后看是否相等。

    class Solution {
        public boolean isPalindrome(String s) {
            if (s == null) return true;
            /**
             *  方法1:双指针
             */
            char[] chars = s.toLowerCase().toCharArray();
            int l = 0, r = chars.length - 1;
            while (l < r) {
                if (!isType(chars[l])) {
                    l ++;
                    continue;
                }
                if (!isType(chars[r])) {
                    r --;
                    continue;
                }
                if (chars[l] != chars[r]) {
                    return false;
                }
                l ++;
                r --;
            }
            return true;
            /**
             * 方法2:reverse
             */
            /*
            s = s.toLowerCase();
            StringBuilder sb = new StringBuilder(s.length());
            for (int i = 0; i < s.length(); i++) {
                if (isType(s.charAt(i))) {
                    sb.append(s.charAt(i));
                }
            }
            return sb.toString().equals(sb.reverse().toString());
            */
        }
        private boolean isType(char c) {
            return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z');
        }
    }
  • 相关阅读:
    数据变换
    离群点的检验
    数据清洗
    数据采样
    FM与FFM
    EM算法与高斯混合模型
    最大熵模型
    PageRank
    软件技术基础
    原来炫酷的可视化地图,用Python就能搞定!
  • 原文地址:https://www.cnblogs.com/HuangYJ/p/14093633.html
Copyright © 2020-2023  润新知