• leetcode 125.回文字符串


    题目描述:

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

    说明:本题中,我们将空字符串定义为有效的回文串。

    示例 1:

    输入: "A man, a plan, a canal: Panama"
    输出: true
    示例 2:

    输入: "race a car"
    输出: false

    解析题目:

    首先明确什么是回文字符串,就是一个字符串的前半部分等于后半部分反转后的结果。比如:abccba就是回文,nmpmnb就不是回文

    思路一:

    用正则提取字母和数字字符,然后反转对比。(字符串转数组,反转数组,数组转字符串)。

    var isPalindrome = function (s) {
            s = s.replace(/[^0-9a-zA-Z]/g, '').toLowerCase() //转换成字符串
            let news = s.split("").reverse().join("") //字符串转数组,反转数组,数组转字符串
            if(s === news){
                return true
            }else {
                return false
            }
        }

    思路二:

    双指针:

    用正则提取字母和数字字符,然后让第一个指针在最左边,第二个指针在最右边,两个指针同时走,看值是否相等

    var isPalindrome = function(s) {
        s = s.replace(/[^0-9a-zA-Z]/g, '').toLowerCase() //转换成字符串
            let left = 0;
            let right = s.length-1
            while (left < right) {
                if(s[left] != s[right]){ //如果有一个不相等就停止
                    return false
                }
                left++
                right--
            }
            return true
    };

     

    不积跬步无以至千里
  • 相关阅读:
    SSH框架搭建全过程详解
    SpringMVC项目配置全过程详解
    <抽奖奇遇>
    extJS--尚
    CentOS 7.3安装指南
    javaWeb项目之图书管理系统(附视频讲解)
    Swing记事本项目
    五、PTA实验作业(结构体)
    四、PTA实验作业(指针)
    三、PTA实验作业(数组)
  • 原文地址:https://www.cnblogs.com/lyt0207/p/12398042.html
Copyright © 2020-2023  润新知