表示数值的字符串 剑指offer
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。
数值(按顺序)可以分成以下几个部分:
若干空格
一个 小数 或者 整数
(可选)一个 'e' 或 'E' ,后面跟着一个 整数
若干空格
小数(按顺序)可以分成以下几个部分:
(可选)一个符号字符('+' 或 '-')
下述格式之一:
至少一位数字,后面跟着一个点 '.'
至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字
一个点 '.' ,后面跟着至少一位数字
整数(按顺序)可以分成以下几个部分:
(可选)一个符号字符('+' 或 '-')
至少一位数字
部分数值列举如下:
["+100", "5e2", "-123", "3.1416", "-1E-16", "0123"]
部分非数值列举如下:
["12e", "1a3.14", "1.2.3", "+-5", "12e+5.4"]
# 抖机灵解法
class Solution:def isNumber(self, s: str) -> bool:try:float(s)return Trueexcept ValueError:return False
class Solution:def isNumber(self, s: str) -> bool:try:float(s)return Trueexcept ValueError:return False
class Solution(object):def isNumber(self,s):s=s.strip()#去除空格if not s:return Falseif s[0]=='+' or s[0]=='-':s=s[1:]if not s or s[0]=='+' or s[0]=='-' or s[0]=='.' and len(s)==1:return Falsedot=0Ee=0num=0for i in range(len(s)):char=s[i]if '0'<=char<='9':num+=1elif char=='+' or char=='-':if not (s[i-1]=='e' or s[i-1]=='E'):return Falseelif char=='.':dot+=1if dot>1:return Falseif Ee:return Falseelif char=='e' or char=='E':Ee+=1if num==0:return Falseif i==0:# E e 开头return Falseif i+1==len(s):# E e 结尾return Falseif Ee>1:return Falseif s[i+1]=='+' or s[i+1]=='-':if i+2==len(s):return Falseelse:return Falsereturn True
表示数值的字符串 剑指offer相关推荐
- 《剑指offer》题目说明
剑指offer推荐刷题地址: Leetcode: https://leetcode-cn.com/problemset/lcof (官方授权) 牛客网:https://www.nowcoder.com ...
- C#LeetCode刷题-剑指Offer
本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-剑指Offer | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode剑指Offer ...
- 《剑指offer》75题 C++详细题解
目录 简单: 剑指 Offer 03. 数组中重复的数字 map: unordered_map: 原地交换 剑指 Offer 05. 替换空格 剑指 Offer 06. 从尾到头打印链表 出栈入栈 双 ...
- 算法题解(剑指Offer篇)
文章目录 栈与队列(简单) *剑指 Offer 09. 用两个栈实现队列 - 12.27 剑指 Offer 30. 包含min函数的栈 - 12.27 链表(简单) *剑指 Offer 06. 从尾到 ...
- 剑指offer刷题记录 python3 Java
剑指offer刷题记录 python3 Java 剑指 Offer 09. 用两个栈实现队列 剑指 Offer 10- I. 斐波那契数列 剑指 Offer 03. 数组中重复的数字 [★]剑指 Of ...
- 剑指Offer面试题解总结11-20
目录 剑指Offer(11~20) 旋转数组中的最小数字 矩阵中的路径 剪绳子 剪绳子II 二进制中1的个数 数值的整数次方 打印从1到最大的n位数 删除链表的节点 正则表达式匹配 表示数值的字符串 ...
- Leetcode刷题笔记——剑指offer II (一)【整数、数组、字符串、链表】
目录 整数 剑指 Offer II 001. 整数除法 剑指 Offer II 002. 二进制加法 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 剑指 Offer II 00 ...
- leetcode刷题笔记——剑指offer(二)[回溯、排序、位运算、数学、字符串]
这里写目录标题 搜索与回溯 剑指 Offer 12. 矩阵中的路径 剑指 Offer 13. 机器人的运动范围 剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 36. 二叉搜索树 ...
- 剑指offer第二版答案详细版(带详细解题思路)
1.滑动窗口的最大值(剑指offer原59题) 解题思路:其实是一个队列的问题,用一个队列去维护当前窗口中的所有元素:首先将超出窗口中的队头元素先删掉,然后将新的元素插入当前窗口中,插入时要判断新插入 ...
- 【剑指offer】【leetcode精选题集】【Java】剑指offer题解合集 更新中
Leetcode题集 [剑指offer][JAVA]面试题第[03]题[数组中的重复数字][HashSet] [剑指offer][JAVA]面试题第[04]题[二维数中的查找][数组] [剑指offe ...
最新文章
- 分享9个提高代码运行效率的小技巧
- 明抢华为市场,宣战苹果三星,这家创业公司胆子不小
- 4个足球队打小组单循环
- 虚拟机centos7.3不能启动
- WordPress 修改固定链接出错(apache2)
- (转)Mahout Kmeans Clustering 学习
- Atitit.减少http请求数方案
- 用虚拟机在一台电脑上实现xPC实时仿真
- memcache客户端命令
- Android申请相机权限
- uniapp 表格组件,冻结首行首列
- 程序计数器的作用--简单易懂
- BP神经网络的MATLAB源码
- linux获取android界面,Android中 adb shell ps 查看手机中进程信息
- ArcGIS之创建企业级地理数据库(Oracle)
- Webots中常用的函数(C版)
- Facebook老员工的十点经验
- 弹性文件服务(Scalable File Service,SFS)
- Unity3D音频播放 动态加载组件
- Java某人再玩游戏的时候输入密码123456后成功进入游戏(输错5次则被强行退出)要求用程序实现密码验证的过程。