65. Valid Number
来源:互联网 发布:旋流器计算软件 编辑:程序博客网 时间:2024/05/29 07:53
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.
这道题的要求是判断1个字符串是否是数字。
字符串处理,不过有几个细节需要注意:
先把前面和后面的空格全部剪掉,如果全空返回false。
数字可以有前导空格和后置空格,不过数字中间不允许有空格;
对于’.’,最多只允许出现1次,左右两边只能有一边没数字;
对于’e’,最多只允许出现1次,其前后都必须有数字,但后面一定是整数,即不能出现’.’;
对于’+’和’-‘,’e’的前后都最多只允许出现1次,且一定要在数字最前面出现;
至于其他字符,只允许是数字(0~9)。
#include<iostream>#include<string>using namespace std;class Solution {public: bool isNumber(string s) { int i=0,j=s.length()-1; while(s[i]==' ') i++; while(s[j]==' ') j--; if(j<i) return false; else s=s.substr(i,j-i+1); bool pointSeen = false; bool eSeen = false; bool numberSeen = false; bool numberAfterE = true; for(i=0; i<s.length(); i++) { if('0' <= s[i] && s[i] <= '9') { numberSeen = true; numberAfterE = true; } else if(s[i] == '.') { if(eSeen || pointSeen) { return false; } pointSeen = true; } else if(s[i] == 'e') { if(eSeen || !numberSeen) { return false; } numberAfterE = false; eSeen = true; } else if(s[i] == '-' || s[i] == '+') { if(i != 0 && s[i-1] != 'e') { return false; } } else return false; } return numberSeen && numberAfterE; }};int main(){ char s[10]; cin.getline(s,10); Solution solve; cout<<solve.isNumber(s)<<endl; return 0;}
0 0
- LeetCode --- 65. Valid Number
- [Leetcode] 65. Valid Number
- [LeetCode]65.Valid Number
- 65. Valid Number
- Leetcode-65.Valid Number
- 65. Valid Number
- 【leetcode】65.Valid Number
- leetcode 65. Valid Number
- LeetCode 65. Valid Number
- Leetcode 65. Valid Number
- 65. Valid Number
- 65. Valid Number
- LeetCode 65. Valid Number
- LeetCode - 65. Valid Number
- 65. Valid Number
- [LeetCode] 65. Valid Number
- leetcode 65.Valid Number
- 65. Valid Number
- requirejs的用法
- 使用maven的mybatis-generator生成实例和mapping过程以及可能出现问题解决
- redsi 内存优化和存储
- 第七周 项目3 负数把正数赶出队列
- 第五周项目2-建立链栈算法库
- 65. Valid Number
- 什么是范数-学习
- 如何在Android Studio中实现不区分大小写
- 微信WEB开发者工具
- 基于summernote的富文本编辑器,粘贴时去除word格式
- RiverOfAutumn
- liunx32位和64为数据类型对比
- 一位在MIT教数学的老师总结了十条经验
- 第五周项目4 数制转换