[练习题] 2 . 有效数字
题目
有效数字(按顺序)可以分成以下几个部分:
一个 小数 或者 整数
(可选)一个'e'
或 'E'
,后面跟着一个 整数
小数(按顺序)可以分成以下几个部分:
(可选)一个符号字符('+'
或'-'
)
下述格式之一:
至少一位数字,后面跟着一个点'.'
至少一位数字,后面跟着一个点'.'
,后面再跟着至少一位数字
一个点'.'
,后面跟着至少一位数字
整数(按顺序)可以分成以下几个部分:
(可选)一个符号字符('+'
或 '-'
)
至少一位数字
部分有效数字列举如下:
[“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),加号 ‘+’ ,减号 ‘-’ ,或者点 ‘.’ 。
分析
代码实现
public class Solution {char[] chars;boolean point = false;boolean exponent = false;public static void main(String[] args) {Solution s = new Solution();System.out.println(s.isNumber(".1"));}public boolean isNumber(String s) {s = s.trim();int length = s.length();if (length == 0) {return false;}chars = s.toCharArray();String[] ss = s.split("e");if (ss.length == 0) {return false;}if (ss[0].length() == 0)return false;if (ss[0].length() < length)exponent = true;if (ss[0].length() == length - 1) {return false;}String[] pre = ss[0].split("\\.");if (pre.length == 0) {return false;}if (pre[0].length() < ss[0].length())point = true;boolean result = pre(0, pre[0].length());result = result && middle(pre[0].length() + 1, ss[0].length());if (exponent) {result = result && is(ss[0].length() + 1, length);}return result;}public boolean pre(int i, int length) {if (i >= length) {return true;}if (chars[i] == '+' || chars[i] == '-') {i++;}if (i == length && !point) {return false;}for (; i < length; i++) {if (chars[i] < '0' || chars[i] > '9') {return false;}}return true;}public boolean middle(int i, int length) {if (i >= length && point) {if (chars[i - 2] >= '0' && chars[i - 2] <= '9') {return true;}return false;}for (; i < length; i++) {if (chars[i] < '0' || chars[i] > '9') {return false;}}return true;}public boolean is(int i, int length) {if (i == 1) {return false;}if (chars[i] == '+' || chars[i] == '-') {i++;}if (i == length) {return false;}for (; i < length; i++) {if (chars[i] < '0' || chars[i] > '9') {return false;}}return true;}
}
[练习题] 2 . 有效数字相关推荐
- c语言基础编程题山东科技大学,C语言练习题〔山东科技大学吐血整理〕.doc
C语言练习题[山东科技大学吐血整理] 数学11-1 C语言平时训练题 1.算术基本运算 Description 计算两整数x和y(0 Input 输入只有一行. Output 输出为多行,按顺序每行输 ...
- 130道Python练习题,涵盖基础内容的方方面面
1.数据类型篇 1.1 基本数据类型 1.1.1 逻辑推理练习(类型转换) 1.1.1.1 bool函数转换规则 1.1.1.2 int("3.42") 为什么会报错 1.1.1. ...
- 计算机一级考试空格符号选择题,2018年9月计算机一级考试MSOffice练习题二
出国留学网在这里为考生们整理了"2018年9月计算机一级考试MSOffice练习题",希望能帮到大家,想了解更多考试资讯,请关注小编的及时更新哦. 2018年9月计算机一级考试MS ...
- 计算机一级摸拟题练习,2017计算机一级MSOffice模拟练习题附答案
2017计算机一级MSOffice模拟练习题附答案 引导语:2017年9月份的计算机考试快要来临了,你们都准备得怎么样了,以下是百分网小编分享给大家的2017计算机一级MSOffice模拟练习题附答案 ...
- matlab数学实验 南邮,matlab实验练习题(计算机)-南邮-matlab-数学实验大作业答案
matlab实验练习题(计算机)-南邮-matlab-数学实验大作业答案 1"MATLAB"练习题练习题要求:抄题.写出操作命令.运行结果,并根据要求,贴上运行图.1.求的所有根. ...
- 螺旋测微器b类不确定度_华理大物实验答案(误差与有效数字,基本测量) -...
误差与有效数字练习题答案 1.有甲.乙.丙.丁四人,用螺旋测微计测量一个铜球的直径,各人所得的结果表达如下:d甲 =(1.2832±0.0003)cm ,d乙 =(1.283±0.0003)cm ,d ...
- matlab数学实验报告syms,MATLAB验练习题(计算机) 南邮 MATLAB 数学实验大作业答案
"MATLAB"练习题 要求:抄题.写出操作命令.运行结果,并根据要求,贴上运行图. 1.求ex?3x2?0的所有根.(先画图后求解)(要求贴图) >> solve(' ...
- 用计算机算锐角三角比,用计算器求锐角三角比,,练习题答案,,青岛版
篇一:青岛版九上数学2.1锐角三角比练习题 锐角三角比练习题 例1 在Rt?ABC中,?ACB?90?,BC?1,AB?2,则下列结论正确的是() A.sinA?13 B.tanA? C.cosB? ...
- 在计算机领域中通常用bips来描述,9月计算机一级MsOffice考试章节练习题
2017年9月计算机一级考试将于9月23日-26日进行,为帮助考生们复习备考,以下是百分网小编搜索整理的一份9月计算机一级MsOffice考试章节练习题,供参考练习. 1[单选题] 下列设备组中,完全 ...
最新文章
- redis源码分析(beta版本)-redis实现的概述逻辑
- EclipseLink JPA-RS简介
- java进程内存一直没释放_五分钟彻底搞懂你一直没明白的Linux内存管理
- hbase hmaster启动起来就自动关闭
- 夺命雷公狗---PDO NO:3与连接有关的选项
- 第二阶段冲刺第八天,6月7日。
- 砸黑板! 正则表达式!!!re 模块
- 下周开始读《Principles of Program Analysis》
- 计算机的主要元器件介绍,计算机基础电子元器件介绍.ppt
- matlab读取txt文件
- ftp误删服务器文件恢复,ftp服务器文件误删
- 华硕重装后进入bios_华硕笔记本重装系统如何设置bios
- this.$refs使用方法
- 华为Mate40/华为Mate40Pro忘记密码怎么解锁激活手机设备已锁定恢复出厂无法解锁账户ID屏幕锁解除刷机方法教程
- PicGo+Gitee(码云)搭建个人博客的免费图床
- cad绘制正八边形_CAD正多边形怎么画,快捷键命令是什么?
- 数据库DevOps:我们如何提供安全、稳定、高效的研发全自助数据库服务-iDB/DMS企业版...
- linux共享打印机smb,centos7 安装cups+smb共享打印机
- 单绞机控制算法模型(Simulink仿真)
- 微信公众号笔记---本地调试微信接口
热门文章
- Python Dictionary
- 计算机组装配件选型,小白DIY攒机指南 谈谈组装电脑前的准备以及购买组装配件需要注意的事项...
- 留学计算机Ps模板,留学申请PS模板
- 揭秘金山联手微软大奔走
- OSChina 周六乱弹 —— 早上儿子问我他是怎么来的
- 第三方舆情收集与质量闭环建设
- 携转待生效用户是什么_携号转网再出新政,用户运营商矛盾待解
- Facebook推首款硬件产品,可视频智能音箱Portal挑战亚马逊
- RCNN学习笔记——第三篇: 实现FRCNN网络训练、评价与预测(附全部源码)
- haproxy代理服务器介绍