美文网首页
【LeetCode】65.有效数字

【LeetCode】65.有效数字

作者: 尹小芃槑 | 来源:发表于2018-10-11 14:10 被阅读0次

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 的执行效率比逻辑运算符的效率更高。

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

相关文章

  • 2.数学(二)

    题目汇总https://leetcode-cn.com/tag/math/65. 有效数字困难(没做)67. 二进...

  • 【LeetCode】65.有效数字

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

  • LeetCode 力扣 65. 有效数字

    题目描述(困难难度) 给定一个字符串,判断它是否代表合法数字,当然题目描述的样例不够多,会使得设计算法中出现很多遗...

  • python实现leetcode之65. 有效数字

    解题思路 代码比较长,但是很简单「设计模式」中的访问者模式使用一个类管理匹配,检查匹配状态即可 65. 有效数字[...

  • 65.有效数字

  • [LeetCode]65、有效数字

    题目描述 验证给定的字符串是否可以解释为十进制数字。 例如: "0" => true" 0.1 " => true...

  • LeetCode - #65 有效数字

    前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swi...

  • Day23 有效的数独

    判断一个 9x9 的数独是否有效。只需要根据规则,验证已经填入的数字是否有效即可 https://leetcode...

  • PHP之高频考点算法合辑

    有效括号 LC: Valid Parentheses - LeetCode[https://leetcode.co...

  • 有效括号 Click here for leetcode details[https://leetcode-cn....

网友评论

      本文标题:【LeetCode】65.有效数字

      本文链接:https://www.haomeiwen.com/subject/ooikoftx.html