LeetCode 65 - Valid Number
2016-04-07 18:42
537 查看
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 implementing one.
My Code
class Solution { public: bool isRealNumber(string s) { int len = s.length(); if (len == 0) return false; if (s == "-" || s == "." || s == "+" || s == "-." || s == "+.") return false; int i = 0; if (s[i] == '-' || s[i] == '+') i++; int dotCnt = 0; for (; i < len; i++) { if (s[i] == '.') { dotCnt++; if (dotCnt >= 2) return false; } else if (s[i] >= '0' && s[i] <= '9') continue; else return false; } return true; } bool isInteger(string s) { int len = s.length(); if (len == 0) return false; if (s == "-" || s == "+") return false; int i = 0; if (s[i] == '-' || s[i] == '+') i++; int dotCnt = 0; for (; i < len; i++) { if (s[i] >= '0' && s[i] <= '9') continue; else return false; } return true; } bool isNumber(string s) { int len = s.length(); int start = 0; while (s[start] == ' ' || s[start] == '\t') start++; int end = len - 1; while (s[end] == ' ' || s[end] == '\t') end--; s = s.substr(start, end-start+1); int pos = s.find('e'); if (pos == -1) { return isRealNumber(s); } else { return isRealNumber(s.substr(0, pos)) && isInteger(s.substr(pos + 1)); } } };Runtime: 12 ms
Testcases
Input | Result |
---|---|
-1e-10 | true |
- | false |
. | false |
.01 | true |
-.01 | true |
1. | true |
-1. | true |
01 | true |
-01 | true |
1e | false |
e1 | false |
e | false |
1e0 | true |
相关文章推荐
- 利用jdk 工具构建webservice 的server 和 client
- 在js中的改进版的冒泡排序法 和 二分查找法
- Unity3D for VR 学习(3): 暴风魔镜PC Input小改造–自己动手、丰衣足食
- cocos2dx--纹理平铺
- 从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题
- iOS 网络编程详解
- android studio gradle有什么优势,怎么构建android应用,什么是gradle
- #2JAVA面向对象之封装#
- bzoj 1529
- HashMap与ConcurrentHashMap的区别(转)
- 记录《精通CSS:高级Web标准解决方案》学习过程
- Unity3D for VR 学习(2): 暴风魔镜框架探索
- [线段树] BZOJ 4491 我也不知道题目名字是什么
- ffmpeg 和 x264的参数对照
- c语言基础概念(2)
- 扣丁学堂笔记第26天云平台、Git与Linux
- 11、Mysql表的分区实现
- UVA_793_Network Connections
- Jquery的extend
- 重载和重写