题目

有效数字(按顺序)可以分成以下几个部分:

  1. 一个 小数 或者 整数

  2. (可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个 整数
    小数(按顺序)可以分成以下几个部分:

  3. (可选)一个符号字符(’+’ 或 ‘-’)
    下述格式之一:

  • 至少一位数字,后面跟着一个点 ‘.’

  • 至少一位数字,后面跟着一个点 ‘.’ ,后面再跟着至少一位数字

  • 一个点 ‘.’ ,后面跟着至少一位数字
    整数(按顺序)可以分成以下几个部分:

  • (可选)一个符号字符(’+’ 或 ‘-’)

  • 至少一位数字
    部分有效数字列举如下:

  • [“2”, “0089”, “-0.1”, “+3.14”, “4.”, “-.9”, “2e10”, “-90E3”, “3e+7”, “+6e-1”, “53.5e93”, “-123.456e789”]
    部分无效数字列举如下:

  • [“abc”, “1a”, “1e”, “e3”, “99e2.5”, “–6”, “-+3”, “95a54e53”]
    给你一个字符串 s ,如果 s 是一个 有效数字 ,请返回 true 。

  • 示例 1:

输入:s = “0”
输出:true

  • 示例 2:

输入:s = “e”
输出:false

  • 示例 3:

输入:s = “.”
输出:false

  • 示例 4:

输入:s = “.1”
输出:true

提示:

  • 1 <= s.length <= 20
  • s 仅含英文字母(大写和小写),数字(0-9),加号 ‘+’ ,减号 ‘-’ ,或者点 ‘.’ 。

解题思路

有效数字主要由下面几部分组成(括号表示可选内容)

(+/-) 整数(.整数) (e (+/-) 整数)

使用的正则表达式表示

  1. 中括号[]:只有方括号里面指定的字符才参与匹配,也只能匹配单个字符。

表达式:t[abcd]n 只可以匹配:tan,tbn,tcn,tdn。不可以匹配:thn,tabn,tn等。

  1. | 符号。相当与“或”,可以匹配指定的字符,但是也只能选择其中一项进行匹配。

表达式:t(a|b|c|dd)n 只可以匹配:tan,tbn,tcn,tddn。不可以匹配taan,tn,tabcn等。

匹配的正则表达式如下图所示

代码

class Solution {public boolean isNumber(String s) {String reg="^[+|-]?(([0-9]+\\.[0-9]*)|([0-9]*\\.[0-9]+)|([0-9]+))([e|E][+|-]?[0-9]+)?$";return s.matches(reg);}
}

leetcode 65. 有效数字(正则表达式)相关推荐

  1. Java实现 LeetCode 65 有效数字

    65. 有效数字 验证给定的字符串是否可以解释为十进制数字. 例如: "0" => true " 0.1 " => true "abc&q ...

  2. [LeetCode]65. 有效数字

    65. 有效数字 难度:困难 有效数字(按顺序)可以分成以下几个部分: 一个 小数 或者 整数 (可选)一个 'e' 或 'E' ,后面跟着一个 整数 小数(按顺序)可以分成以下几个部分: (可选)一 ...

  3. LeetCode - #65 有效数字

    前言 我们社区陆续会将顾毅(Netflix 增长黑客,<iOS 面试之道>作者,ACE 职业健身教练.)的 Swift 算法题题解整理为文字版以方便大家学习与阅读. LeetCode 算法 ...

  4. LeetCode 65. 有效数字(逻辑题,难)

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

  5. 【To Do! 重点 正则表达式】LeetCode 65. Valid Number

    LeetCode 65. Valid Number 本博客转载自:[1]http://www.cnblogs.com/yuzhangcmu/p/4060348.html [2]https://blog ...

  6. LeetCode 64最小路径和65有效数字66加一

    原创公众号:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 关注后回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode打卡 52八皇后Ⅱ&53最大子序和& ...

  7. 刻意练习:LeetCode实战 -- Task18. 正则表达式匹配

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

  8. LeetCode【9-- 回文数】LeetCode【10 --正则表达式的匹配】

    回文数 题目描述 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 解题思路 判断该数的逆序数是不是和原数相同 代码实现 class Solution {pub ...

  9. 最常用的65条正则表达式

    一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9 ...

最新文章

  1. 使用rancher对Docker容器服务升级
  2. oracle11g开启1158,1、Oracle11g中浏览器访问不了http://localhost:1158/em的问题
  3. 谁在“唱衰”OpenStack?
  4. c#v2.0 扩展特性 翻译(1)
  5. keras冻结_【连载】深度学习第22讲:搭建一个基于keras的迁移学习花朵识别系统(附数据)...
  6. java标识符与关键字_4、Java标识符和关键字
  7. 【小白学习Keras教程】四、Keras基于数字数据集建立基础的CNN模型
  8. 看得懂的外观设计模式 python3 实现
  9. Python读取PDF
  10. sqlmap 用户手册(续)
  11. 最短路径(dijistra和floyd算法)
  12. acm 算法 java_【经验总结】Java在ACM算法竞赛编程中易错点
  13. android linux 双系统实现(android+buster)同时运行
  14. 树莓派CM4基于emmc安装Ubuntu系统及初始配置
  15. phpstudy 本地配置url重写
  16. php 每天的凌晨三点,无论几点睡,凌晨3.4点总会醒?4个原因,得懂得先排除
  17. 零知识证明学习资源汇总
  18. 托雷多——伯爵死于旧日皇城(我们的两牙游
  19. 事件抽取中的“门面技术”:事件名称生成浅谈
  20. 考研英语一复习经验帖【干货】

热门文章

  1. linux网络编程(三)select、poll和epoll
  2. QT事件事件之一:Qt中的事件处理与传递
  3. 信号捕捉(signal、sigaction)
  4. java停车场管理系统程序设计代码_社区养老服务管理系统,java程序设计
  5. 淘淘商城之技术选型、开发工具和环境、人员配置
  6. array_walk与array_map的区别
  7. python DB.fetchall()--获取数据库所有记录列表
  8. Redis源码解析:21sentinel(二)定期发送消息、检测主观下线
  9. 2015/12/15--Document对象
  10. 隐藏Content-Location标头带的内部IP地址的执行语句以及其可能会带来的问题