【leetcode刷题笔记】Valid Number
2024-08-27 23:15:34
Validate if a given string is numeric.
Some examples:"0"
=> true
" 0.1 "
=> true
"abc"
=> false
"1 a"
=> false
"2e10"
=> true
题解:题目不难,就是有点麻烦,要注意的地方很多,总结一下:
- 前面和后面的空格要用s.trim()去掉;
- 前导的'+'和'-'号需要忽略;
- 小数点只能出现一次,且不能出现在e后面;
- 指数符号e只能出现一次,而且它的前面和后面都要有数字;
- 除了前导的'+'和'-'外,还可以在符号e后面出现'+'和'-',但只能在e后面。
代码如下:
public class Solution {
public boolean isNumber(String s) {
if(s == null || s.length() == 0)
return false; s = s.trim();
if(s.length() == 0)
return false; int i = 0;
if(s.charAt(0) == '+' || s.charAt(0) == '-')
i++; boolean hasDot = false;
boolean hasExp = false;
boolean num = false; while(i<s.length()){
char now = s.charAt(i);
if(now >= '0' && now <= '9')
{
num = true;
}
else if(now == '.'){
if(hasDot || hasExp)
return false;
hasDot = true;
}
else if(now == 'e'){
if(hasExp || num == false)
return false;
hasExp = true;
num = false;
}
else if(now == '+' || now == '-'){
if(s.charAt(i-1) != 'e')
return false;
}
else
return false;
i++;
}
return num;
}
}
最新文章
- Download Free Oracle Reports Building Guide eBook
- 010-Scala单例对象、伴生对象实战详解
- Zend Studio 中安装emmet插件的方法
- Unity3D 系统宏
- 关于JavaScipt对象的基本知识
- axure复用-自定义组件,母版(模板)
- C#串口操作类,包括串口读写操作
- 48. Rotate Image
- POI 中的CellRangeAddress 参数
- Java程序员常用工具集
- 256MB小内存MySQL配置优化
- swift 之xib自定义view可视化到storyboard
- C# 读取系统日志
- SpringBoot中使用JNnit4(入门篇)
- echarts tree 树型图层级距离设置
- Mybatis Annotation使用小结
- [动态规划]数字三角形(版本I-III)
- 借助微软提供的url重写类库URLRewriter.dll(1.0)实现程序自动二级域名,域名需要泛解析
- 虚拟货币ICO是什么意思 看完秒懂
- Python 基础常用