【LeetCode】65.有效数字

LeetCode 题目地址:https://leetcode-cn.com/problems/valid-number/description/

题目

验证给定的字符串是否为数字。

例如:
"0" => true
" 0.1 " => true
"abc" => false
"1 a" => false
"2e10" => true

说明: 我们有意将问题陈述地比较模糊。在实现代码之前,你应当事先思考所有可能的情况。

JavaScript:

/**
 * @param {string} s
 * @return {boolean}
 */
var isNumber = function(s) {
};

解答

代码

/**
 * @param {string} s
 * @return {boolean}
 */
var isNumber = function(s) {
    // 去掉空格
    if(s.replace(/\s/g, "") === "") {
       return false;
    }
    if(isNaN(s - 0)) return false;
    return true;
};

解析

  • 字符串转数字,我们可以使用一元操作符、函数、算术运算符等方式来判断s是否是数字。

  • 传入的字符串s可以有空格,也就是说,s可能是空字符串或空格字符串,在这种情况下,通过第一步会被转换成0,这种返回结果是不正确的,所以需要将该情况排除掉。所以需要将s中的空格去掉,判断是否为空,如果为空,返回false。

  • 性能

    之前写过下面的代码

    /**
     * @param {string} s
     * @return {boolean}
     */
    var isNumber = function(s) {
        // 去掉空格
        if(s.replace(/\s/g, "") === "") {
           return false;
        }
        return !isNaN(s - 0);
    };
    

    但是发现上述代码的执行时间会较长,说明 if 的执行效率比逻辑运算符的效率更高。

    转载请注明:转自尹小芃槑

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,686评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,103评论 19 139
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 6,387评论 0 10
  • 老三的初恋是安心。 地铁上,我正刷着微博,老三拿胳膊肘戳了戳我。 我抬起头,这逗比给我使了一眼色,我顺着他直勾...
    乔子阅读 666评论 0 4
  • 在抖音上有一句很火的话:从今往后,不谈感情,一心向前(钱)。别无它念。每当看到这句话,无限感慨。用在我身上特别贴切...
    荣轩11阅读 17,750评论 0 3

友情链接更多精彩内容