每日算法之四十七:Valid Number (验证是否为数字)
来源:互联网 发布:淘宝二手gopro可信吗 编辑:程序博客网 时间:2024/05/18 01:56
要想正确的写出这个函数不是件容易的事情,因为要考虑的事情很多:
1)字符串的前后都可能会有空格,但是中间不允许有空格。
2)可能有小数,1.235,或者.3522这种形式
3)可能有指数形式,2e10 2e-1等形式
Validate if a given string is numeric.
Some examples:"0"
=> true
" 0.1 "
=> true
"abc"
=> false
"1 a"
=> false
"2e10"
=> true
然后逐位去查询,检验前提调试是否会成立,如果中间有一个不满足条件就返回false。
<span style="font-size:18px;">class Solution {public: bool isNumber(const char *s) { while (*s == ' ') ++s; while (*s == '+' || *s == '-') ++s; bool exp = false, space = false, point = false; bool number = false; while (*s != '\0') { if (isdigit(*s)) { if (space) return false; else number = true; } else if (*s == '.') { if (!point && !space && !exp) { point = true; } else { return false; } } else if (*s == 'e') { if (!exp && number && !space) { exp = true; number = false; while (*(s+1) == '+' || *(s+1) == '-') ++s; } else { return false; } } else if (*s == ' ') { if (!space) { space = true; } } else { return false; } ++s; } return number; }};</span>
0 0
- 每日算法之四十七:Valid Number (验证是否为数字)
- Valid Number(验证字符串是否表示数字)
- LeetCode65——Valid Number(使用DFA)来判断字符串是否为数字
- 每日英语阅读(四十七)
- 每日算法之四十:Insert Interval
- 验证是否为数字
- Valid Number 判断一个数字是否有效
- LeetCode OJ 之 Valid Number (有效数字的判断)
- 每日算法之三十:Valid Sudoku (九宫格)
- 验证字符串是否为数字
- 脚本验证是否为数字
- js验证是否为数字
- js验证是否为数字
- 验证是否为纯数字
- Valid Palindrome:验证是否为回文结构
- 每日算法之十九:Valid Parentheses
- 每日算法之四十三:Rotate List (列表旋转k个元素)
- 每日一练之Palindrome Number【LeetCode No.9】—判断是否为回文数
- Fedora 博通无线网卡 linux 驱动
- 数据存储与输出输入
- C++实现大数的四则运算
- 软工视频之需求分析
- Fedora14中文输入法安装
- 每日算法之四十七:Valid Number (验证是否为数字)
- CCActionEase 笔记
- 数据库内容导出为excel
- 数据库范式 三范式
- STL介绍
- JavaSe基础XX20——网络编程_2
- Sublime Text 使用介绍、全套快捷键及插件推荐
- Linux笔记(2)
- 深入解析Cookie技术