zoukankan      html  css  js  c++  java
  • JZ53 表示数值的字符串

    描述

    请实现一个函数用来判断字符串str是否表示数值(包括科学计数法的数字,小数和整数)。
     
    科学计数法的数字(按顺序)可以分成以下几个部分:
    1.若干空格
    2.一个整数或者小数
    3.(可选)一个 'e' 或 'E' ,后面跟着一个整数(可正可负)
    4.若干空格
     
    小数(按顺序)可以分成以下几个部分:
    1.若干空格
    2.(可选)一个符号字符('+' 或 '-')
    3. 可能是以下描述格式之一:
    3.1 至少一位数字,后面跟着一个点 '.'
    3.2 至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字
    3.3 一个点 '.' ,后面跟着至少一位数字
    4.若干空格
     
    整数(按顺序)可以分成以下几个部分:
    1.若干空格
    2.(可选)一个符号字符('+' 或 '-')
    3. 至少一位数字
    4.若干空格


    例如,字符串["+100","5e2","-123","3.1416","-1E-16"]都表示数值。
    但是["12e","1a3.14","1.2.3","+-5","12e+4.3"]都不是数值。
     
    提示:
    1.1 <= str.length <= 20
    2.str 仅含英文字母(大写和小写),数字(0-9),加号 '+' ,减号 '-' ,空格 ' ' 或者点 '.' 。
    3.如果怀疑用例是不是能表示为数值的,可以使用python的print(float(str))去查看
     
     

    示例1

    输入:
    "123.45e+6"
    返回值:
    true

    示例2

    输入:
    "1.2.3"
    返回值:
    false

    示例3

    输入:
    "."
    返回值:
    false

    示例4

    输入:
    "    .2  "
    返回值:
    true

     ==================================================================================================================

    解题思路:

      通过判断几个特殊的字符,比如'.'、'+' 、'e'或者'E',不满足条件就直接return false,再在结束的时候判断最后的字符是不是数字,或者是数字后面的'.',如果是就return true,如果不是就return false。

    或者正则表达式也可以匹配。

    使用正则表达式进行匹配。

    []  : 字符集合
    ()  : 分组
    ?   : 重复 0 ~ 1 次
    +   : 重复 1 ~ n 次
    *   : 重复 0 ~ n 次
    .   : 任意字符
    \. : 转义后的 .
    \d : 数字
    [+-]?\d*(\.\d+)?([eE][+-]?\d+)?


  • 相关阅读:
    mac使用vnc远程登录ubuntu16.04桌面
    last的用法
    MAC笔记本安装telnet
    lsyncd自动同步配置
    四则运算——安卓版
    敏捷开发方法综述
    数组2——数组首尾相接,求最大子数组
    数组1——求一个数组的最大子数组
    《构建之法》阅读笔记04
    学习进度条——第四周
  • 原文地址:https://www.cnblogs.com/hddandelion/p/15202922.html
Copyright © 2011-2022 走看看