Leetcode算法——65、有效数字(valid number)

【leetcode热题100】 有效数字 'e''E''+''-''.''.''.''+''-'给你一个字符串s,如果s是一个,请返回true。 阅读详情

判断一个字符串是否可以被翻译为一个小数。

在一个有效的小数中,可能存在的字符有:
1、数字0-9
2、正负号 +/-
3、小数点 .

示例:

"0" => true
" 0.1 " => true
"abc" => false
"1 a" => false
"2e10" => true
" -90e3   " => true
" 1e" => false
"e3" => false
" 6e-1" => true
" 99e2.5 " => false
"53.5e93" => true
" --6 " => false
"-+3" => false
"95a54e53" => false

思路

通过示例可以看出一些规则:

  • 首尾的多个空格可以忽略
  • 正负号不能相邻
  • 如果有出现了e,那么e前面可以是小数,e后面只能是整数(可以是负数)
  • 除了e,不能出现其他任何字母
  • “1.” 或者 “.1” 都认为是正确的小数

可以使用正则式匹配,将这些规则统一到一个正则式中,如果可以匹配到,则说明符合规则。

正则式的一些语法:

?:匹配前面的子表达式零次或一次
+:匹配前面的子表达式一次或多次
*:匹配前面的子表达式零次或多次
.:匹配除换行符 \n 之外的任何单字符
^:匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。
$:匹配输入字符串的结尾位置

以上特殊字符如果要匹配本身的话,需要在前面加上\。

python实现

import re
def isNumber(s):
    """
    :type s: str
    :rtype: bool
    """
    s = s.strip()
    p1 = r'([0-9]+)' # 整数
    p2 = r'(([0-9]+)?\.([0-9]+))' # 小数,.前面可以为空
    p3 = r'(([0-9]+)\.)' # 小数,.后面为空
    p4 = f'((\+|-)?({p1}|{p2}|{p3}))' # 小数或整数的正则表达式
    p5 = f'^({p4}|({p4}e(\+|-)?{p1}))$' # 只有小数,或者e前面为小数,e后面为整数
    if re.match(p5, s):
        return True
    else:
        return False
        
if '__main__' == __name__:
    s = ""
    print(isNumber(s))
Leetcode | C++ 65-Valid Number 题目分析: 给你一个字符串,判断其是否是一个数。 解题思路(1): 用条件判断语句将字符串成为数的条件逐条判断,这种方法很繁琐,而且有些条件是穿插着的,不建议使用。 解题思路(2): 构造有限状态自动机(DFA),自动机一共包含9个状态: 状态0:起始状态,接收空格转移到状态0,接收正负号转移到状态1,接收数字转移到状态2,接收小数点转移到状态3; 状态1:接收数字转移到状态2,接收小数点转移到状态3; 状态2:终止状态,接收空格转移到状态8,接收数字转移到状态2,接收小数点转移到状态4,接收指数符号转移到 阅读详情

相关推荐

【没有网络,安装python包】如何从 PyPI 下载并安装 Plotly 的离线包

在某些情况下,您可能需要在没有互联网连接的环境中安装 Python 包,例如在飞机上、在某些受限制的网络环境中或在需要离线安装的场景下。以下是如何在 PyPI(Python Package Index)下载 Plotly 包并进行离线安装的详细步骤。

赖德发的博客 1104

LeetCode——65. 有效数字(Valid Number)[中等]——分析及代码(Java)

LeetCode——65. 有效数字[Valid Number][中等]——分析及代码[Java]一、题目二、分析及代码1. 确定有限状态自动机(1)思路(2)代码(3)结果三、其他 一、题目 有效数字(按顺序)可以分成以下几个部分: 一个 小数 或者 整数 (可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个 整数 小数(按顺序)可以分成以下几个部分: (可选)一个符号字符(’+’ 或 ‘-’) 下述格式之一: 至少一位数字,后面跟着一个点 ‘.’ 至少一位数字,后面跟着一个点 ‘.’ ,后面再跟着至

江南土豆的博客 555

Yolov26 在 Rk3588 上的 Rknn Onnx 部署实践(模型转换)

本文详细介绍了将YOLOv26 ONNX模型转换为RKNN模型的过程,适用于RK3588平台。主要内容包括:1)量化数据集的创建,通过随机抽取最多400张JPG图片生成校准数据集;2)ONNX转RKNN的完整脚本,支持多种量化方式和平台适配;3)模型转换的参考调用方式;4)模型结构对比展示。文章还提供了注意事项,强调量化数据集图片尺寸、mean/std值需与实际推理一致,并给出精度优化建议。该转换流程为YOLOv26模型在RK3588上的高效部署提供了完整解决方案。

qq_64366203的博客 1127

[LeetCode]65. 有效数字

65. 有效数字 难度:困难 有效数字(按顺序)可以分成以下几个部分: 一个 小数 或者 整数 (可选)一个 'e' 或 'E' ,后面跟着一个 整数 小数(按顺序)可以分成以下几个部分: (可选)一个符号字符('+' 或 '-') 下述格式之一: 至少一位数字,后面跟着一个点 '.' 至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字 一个点 '.' ,后面跟着至少一位数字 整数(按顺序)可以分成以下几个部分: (可选)一个符号字符('+' 或 '-') 至少一位数字 部分有

张小猪的家 457

Seurat3.0小提琴图腰围的参数

小提琴图没有有些群没有出现小提琴只有点点,是由于0值比例太多, 一个关键的参数scale = "width"导致了这种局面,应加上上述参数 ggplot(p$data,aes(ident,CD4)) + geom_violin(scale = "width", adjust =1, trim = TRUE) + geom_jitter()+ theme_bw() adjust参数可以调整腰的粗细,eg: ggplot(p$data,aes(ident,CD4)) + geom_violin(scale

Demomwu的博客 1661

[华为ensp]双核心的园区网

(给部分只会emm......借鉴的朋友提个醒,在group-member e0/0/2 to e0/0/20是所选,所以到了p l t那会给2-20端口都配置上trunk,别紧张,不是你问题)完成上述配置后,PC1可以ping通HTTP2服务器,Client1可以访问HTTP2服务器的HTTP站点,如果不能就要检查上述是否正确。本次实验主要目的是采用双核心的冗余网络,采用MSTP和VRRP技术,在核心层交换机上配置SC1上配置OSPF协议。SC1交换机上配置VRRP。在SC1上配置DHCP。

2301_78859499的博客 1416

算法leetcode|65. 有效数字(rust重拳出击)

有效数字(按顺序)可以分成以下几个部分: 一个 小数 或者 整数 (可选)一个 'e' 或 'E' ,后面跟着一个 整数 小数(按顺序)可以分成以下几个部分: (可选)一个符号字符('+' 或 '-') 下述格式之一: 至少一位数字,后面跟着一个点 '.' 至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字 一个点 '.' ,后面跟着至少一位数字 整数(按顺序)可以分成以下几个部分: (可选)一个符

二当家的白帽子 1415

YOLOv8改进 | 独家创新篇 | 给YOLOv8增加辅助可逆分支结构(PGI,1:1改进)(全网独家创新,附视频讲解)

这张图(图3)展示了可编程梯度信息(PGI)及其相关网络架构和方法。这种网络结构主要用于改进特征融合,以提高目标检测的性能。然而,由于信息瓶颈的存在,网络中可能会丢失一些信息。这是一种旨在减少信息丢失的网络设计。它通过可逆的列结构来尝试维持信息流通不受损失,但如图中“Heavy Cost”所示,这种结构会增加计算成本。c) 深度监督:这种方法通过在网络的多个层次中插入额外的监督信号来提高学习的效率和最终模型的性能。图中显示了通过深度监督连接的各个层。

Snu77的博客 3744

【leetcode】有效数字 正则表达式

【leetcode】有效数字 正则表达式

manerzi的博客 545

SAP会计凭证导入ABAP开发模板+注意点—附带源码

开发并不仅仅只要考虑实现的功能,只实现功能的是程序,考虑到使用场景的是工程。使用bapi校验创建会计凭证的数据,报错和参数和正式创建一致。用途,防止产生错误的凭证,即使财务凭证可以冲销。正式创建会计凭证。隐藏的坑。

小九啥也不会 1232

基于Simulink的四足机器人楼梯攀爬仿真模型

构建一个基于Simulink的四足机器人楼梯攀爬仿真模型,旨在模拟四足机器人在面对楼梯等障碍时的运动控制和稳定性调整。以下是一个详细的步骤指南,帮助你从零开始创建这样一个仿真模型。

xiaoheshang_123的博客 247

Leetcode 65. Valid Number 有效数字

Leetcode 65. Valid Number 有效数字 标签: Leetcode 题目地址:https://leetcode-cn.com/problems/valid-number/ 题目描述 验证给定的字符串是否可以解释为十进制数字。 例如: "0" => true " 0.1 " => true "abc" =>&n...

CoderWangSon 295

精度与速度双突破:YOLOv8-Pose 在 RK3588 上实现高性能人体姿态分析部署

本教程从YOLOv8-pose模型的姿态识别训练,到RK3588的边缘量化部署,为你打造了一套“高精度+高实时性+低成本”的人体姿态分析解决方案。无论是健身动作纠正、智能安防行为检测,还是工业人员姿态监控,这套技术都能直接复用——你只需替换数据集与业务逻辑,即可快速落地专属的边缘AI姿态识别系统。如果你在实践中遇到任何卡点,欢迎随时交流。记住,人体姿态识别的价值在于“关键点准、推理快、部署易”,而这三者的平衡,正是你通过本教程能掌握的核心能力。

know_F0727的博客 434

LeetCode65——Valid Number

LeetCode65——Valid Number 这个题目给定的拿督评分是Hard,做了之后发现,它真正Hard的地方不在于这个题目有多难想,而是由多恶心 判断字符串是否是数字,由于题目的示例没有给太多的Sample input,所以很多情况你并不知道是不是数字,这就会影响你的判断, 另外,比如前后导的空格,冗余的加减符号,这些没有给明确说明,很多都是在提交的时候,它告诉你wrong

上善若水 848

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

65 Valid Number

65 Valid Number链接:https://leetcode.com/problems/valid-number/ 问题描述: Validate if a given string is numeric.Some examples: “0” => true ” 0.1 ” => true “abc” => false “1 a” => false “2e10” => true

783

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【LeetCode】65. Valid Number

LeetCode65 传送门 解法: 1. 要设计好问考官的问题。 2. 解法与LeetCode8非常相似,可将问题分为几个组成部分: (1)开头的空格(可有可无) (2)正负号(可有可无) (3)数字 (4)e和e后的数字(可有可无) (5)结尾的空格 推荐解法比我的方法简洁得多,可读性强,但分数却低了一些。原因是我的方法中“一言不合”就返回False,而推荐解法中是保存标志,...

weixin_42344158的博客 209

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LeetCode65 Valid Number

LeetCode65 Valid Number问题描述 Validate if a given string is numeric. Some examples: “0” => true ” 0.1 ” => true “abc” => false “1 a” => false “2e10” => true Note: It is intended

yanqinghe123的专栏 1128

Leetcode 65. Valid Number

题目链接 : Leetcode 65. Valid Number 今天状态不好。。。 import java.util.ArrayList; import java.util.List; public class Solution { public static void main(String[] args){ String s = "96 e5"; s=s.t

独钓寒江雪 280

【LeetCode】#65有效数字(Valid Number)

【LeetCode】#65有效数字(Valid Number) 题目描述 验证给定的字符串是否为数字。 说明: 我们有意将问题陈述地比较模糊。在实现代码之前,你应当事先思考所有可能的情况。 示例 “0” => true " 0.1 " => true “abc” => false “1 a” => false “2e10” => true Description Va...

weixin_43858604的博客 195

Leetcode 65 Valid Number

思路: 没啥特别的,就是把可能发生的情况都想一遍。。。这就是我一开始的思路。但是这样必然会少思考很多weird的case。所以这也是我后期疯狂debug的原因。最后的代码也是惨不忍睹,可读性几乎为0。我之所以硬着头皮把这题做出来了,原因很简单,我只是单纯的不想放弃一道题,哪怕再烦,我就当练习敲代码的感觉也好,做一做总归没错的。你看我这一做,就发现自己的逻辑是多么的不严谨,导致疯狂debug,最后的代码可读性为0。下面我直接放我的代码,非常的差,大家看看也就图一乐。 class Solution { .

GoodJobJasper的博客 155

算法-leetcode-65-Valid Number

算法-leetcode-65-Valid Number 上代码: # coding:utf-8 __author__ = "sn" """Validate if a given string is numeric. Some examples:"0" => true" 0.1 " => true"abc" => false"1 a" => fals...

akuibpt23191的博客 180

leetcode 65. Valid Number

本文给出一种可以AC的Valid Number的定义,算法的有限状态机的图表及源码。 1 Valid Number的定义: Name Regular Expression space ' ' | '\t' sign [+-] digit [0-9]+

jiongjiong 的专栏 280

65. Valid Number-leetcode-java

【原来在SAE的blog上,都转到优快云了。。】 65. Valid Number-leetcode-java 发表于 2016/02/10 题目: Validate if a given string is numeric. Some examples: "0" => true " 0.1 " => true "abc" => false

you are what you read 1724

[Leetcode] 65. Valid Number 解题报告

题目: Validate if a given string is numeric. Some examples: "0" => true " 0.1 " => true "abc" => false "1 a" => false "2e10" => true Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implemen

魔豆(Magicbean)的博客 660

python写算法题:leetcode: 65. Valid Number

class Solution(object): def isDigital(self,s): if len(s)==0: return False if s[0]=='-' or s[0]=='+': s=s[1:] return self.pureNum(s) def i...

233

LeetCode 65. Valid Number(有限状态自动机)

题目来源:https://leetcode.com/problems/valid-number/ 问题描述 65.Valid Number Hard Validate if a given string can be interpreted asa decimal number. Some examples:"0"=>true" 0.1 "=>true"abc"...

da_kao_la的博客 865
上一篇: Leetcode算法——64、最小路径之和(minimum path sum)
下一篇: Leetcode算法——66、加1(plus one)
HappyRocking
博客等级 码龄12年 222粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值