417.有效数字
来源:互联网 发布:js 字符串转数组 编辑:程序博客网 时间:2024/04/30 23:23
给定一个字符串,验证其是否为数字。
样例
"0"
=> true
" 0.1 "
=> true
"abc"
=> false
"1 a"
=> false
"2e10"
=> true
还有这几种情况要考虑。例如: "1.0e10"是正确的, "1.0e1.0"是错误的," 1"是正确的," 1 1"是错的,“e”是错误的,".111"是正确的。
总结一下就是:
处理完空格和正负号后的第一个字符必须是数字或者是符号‘.’,
处理数字时遇到空格,那么空格必须一直到结束,
符号.必须出现在符号e之前。
class Solution {public: /** * @param s the string that represents a number * @return whether the string is a valid number */ bool isNumber(string& s) { // Write your code here int m = s.size(); int start = 0; while(start<m && s[start] == ' ')//处理空格 start++; if(start == m)//全是空格返回false return false; if(s[start] == '+' || s[start] == '-')//处理正负号 start++; if(start ==m) return false; bool flagdian = false;//判断.是否已经出现 bool flagkong = false;//判断空格是否已经出现 bool flage = false;//判断e是否已经出现 if(s[start] == '.')//处理".111"这种情况 { flagdian = true; start++; } if(!(s[start] >= '0' && s[start]<='9'))//好了,现在的第一个字符必须是数字 return false; while(start<m) { if(s[start] >= '0' && s[start]<='9') { start++; } else if(!flagkong && s[start] == ' ')//处理数字时遇到空格,那么空格必须一直到结束, { while(start<m && s[start] == ' ') start++; if(start == m) return true; else return false; } else if(!flage && !flagdian && s[start] == '.')//注意.必须出现在e之前。 { start++; flagdian = true; } else if(!flage && s[start] == 'e' ) { start++; flage = true; } else return false; } return true; }};
0 0
- 417.有效数字
- 有效数字
- 有效数字
- 有效数字
- input 有效数字
- float 有七位有效数字
- 华为OJ--有效数字
- 有效数字的保留
- LintCode:有效数字
- 计算器 保留有效数字
- lintcode,有效数字
- 精确到两位有效数字
- java获取有效数字
- lintcode 有效数字
- 有效数字-LintCode
- LintCode刷题:有效数字
- 输出时保留有效数字
- 浮点数有效数字位数
- Opencv源代码分析之(HoughLinesP)
- [LeetCode]171. Excel Sheet Column Number
- Linux基本命令的使用
- POJ 1182
- Django 生成登陆验证码
- 417.有效数字
- LabVIEW运用举例
- Mac包管理工具对比-Fink
- 链表倒数第n个节点
- Pop Sequence
- POJ3259
- C# 反射
- Fedora下OpenGl开发环境配置
- sql server 分页