[LeetCode]65.Valid Number
来源:互联网 发布:java.net.socket 编辑:程序博客网 时间:2024/06/02 07:31
题目
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.
Update (2015-02-10):
The signature of the C++ function had been updated. If you still see your function signature accepts a const char * argument, please click the reload button to reset your code definition.
思路
无
代码
/*---------------------------------------* 日期:2015-06-16* 作者:SJF0115* 题目: 65.Valid Number* 网址:https://leetcode.com/problems/valid-number/* 结果:AC* 来源:LeetCode* 博客:-----------------------------------------*/#include <iostream>#include <cstdio>using namespace std;class Solution {public: bool isNumber(string s) { int size = s.size(); if(size == 0){ return false; }//if // 前导0 int start = 0; while(s[start] == ' '){ ++start; }//while // 后导0 int end = size - 1; while(s[end] == ' '){ --end; }//while bool hasNum = false,hasPoint = false,hasE = false; for(int i = start;i <= end;++i){ if(s[i] == '.'){ // 如果前面已经有了'.' 或者 'e' if(hasPoint || hasE){ return false; }//if hasPoint = true; }//if else if(s[i] == 'e'){ // 如果前面已经有了'e' 或者 没数字 if(hasE || !hasNum){ return false; }//if hasE = true; }//else else if(s[i] < '0' || s[i] > '9'){ // +2 if(i == start && (s[i] == '+' || s[i] == '-')){ continue; }//if // 1e-2 else if((i != 0 && s[i-1] == 'e') && (s[i] == '+' || s[i] == '-')){ continue; } else{ return false; }//else }//else else{ hasNum = true; }//else }//for // 最后有效位不能是'e+-' if(s[end] == 'e' || s[end] == '+' || s[end] == '-'){ return false; }//if // '.' if(!hasNum && hasPoint){ return false; }//if // 全是空格 if(end == -1){ return false; }//if return true; }};int main(){ Solution s; string str(" 4.4e3 "); //char* str = ".3e4"; cout<<s.isNumber(str)<<endl; return 0;}
运行时间
测试用例
正确:
.3
3.
3.3
4e4
46.e3
4.3e3
.4e4
错误:
e
.
4e
e4
.e4
45e.2
1 1
- LeetCode --- 65. Valid Number
- [Leetcode] 65. Valid Number
- [LeetCode]65.Valid Number
- Leetcode-65.Valid Number
- 【leetcode】65.Valid Number
- leetcode 65. Valid Number
- LeetCode 65. Valid Number
- Leetcode 65. Valid Number
- LeetCode 65. Valid Number
- LeetCode - 65. Valid Number
- [LeetCode] 65. Valid Number
- leetcode 65.Valid Number
- leetcode 65. Valid Number
- leetcode 65.Valid Number
- Leetcode--65. Valid Number
- leetcode-65. Valid Number
- Leetcode 65. Valid Number
- 【LeetCode】65. Valid Number
- “error LNK1169: 找到一个或多个多重定义的符号”的解决方法
- C库-----字符串(string)与整型(int)、浮点型(float)等之间的转换
- SAT数学:计算器的准备
- RTTI symbol not found for class 'QWidget'
- GC微调实践
- [LeetCode]65.Valid Number
- <display:column 如何隐藏列。style="display:none"只能隐藏内容,无法隐藏title
- 几篇好文章
- 4、在项目中添加一个Entitlements.plist文件,设置允许调试。
- zookeeper之2:安装部署
- 图数数据库引擎tinkerpop(3) 使用java调用tinkerpop,存储到mysql数据库
- 新安装mysql mysqladmin -u root password 'newpassword' 错误Access denied for user...
- Ubuntu下安装Qt全部过程
- windows下cmd命令更改好看的字体