leetcode 65. Valid Number
来源:互联网 发布:linux虚拟机kvm怎么用 编辑:程序博客网 时间:2024/05/22 12:48
65. 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.
class Solution {public: bool isNumber(string s) { int k = 0; while (1) //先去除开头的空格 { if(s[k] == ' ') s = s.substr(1, s.size()-1); else break; } if(s.size() == 0) return 0; while(1) //去除末尾的空格 { k = s.size()-1; if(s[k]==' ') s = s.substr(0, s.size()-1); else break; } k = 0; int flag = 0; //记录有没有 '.' int flag3 = 0; //记录有没有 '-' 或者 '+' int flag4 = 0; //记录有没有 'e' while (k < s.size()) { if(int(s[k]) >= 48 && int(s[k]) <= 57) // 0 - 9 { k++; continue; } else if(int(s[k]) == 46 && flag == 0 && flag4 == 0) // '.' { flag = 1; if (k == 0 && s.size() == 1)// 排除"." return 0; else if(k != 0 && k < s.size() - 2 && s[k+1] == 'e') // "14.e3" true { k++; continue; } else if (k != s.size() - 1 && (int(s[k+1]) < 48 || int(s[k+1]) > 57)) // '.'后面是非法的字母等 return 0; else if (k == s.size() - 1 && s[k-1] == '-' && k > 0) // 排除 "-." return 0; else { k++; continue; } } else if (int(s[k]) == 101 && k != 0 && k != s.size() - 1 && s[k+1] != '.' && flag4 == 0) // 'e' { flag4 = 1; if (k == 1 && (int(s[k-1]) < 48 || int(s[k-1]) > 57)) //'e'之前的非法字母 return 0; else { k++; continue; } } else if (int(s[k]) == 45) // - { if (flag3 == 0 || (k > 0 && s[k-1] == 'e')) //只有 "-23" 或者 "2e-3" 才可以 { flag3 = 1; if((s[k-1] == 'e' && k != s.size()-1) || (k == 0 && s.size() != 1)) // 排除"2e-" { k++; continue; } else return 0; } else return 0; } else if (int(s[k]) == 43 && k != s.size()-1) //+ { if (flag3 == 0 || (k > 0 && s[k-1] == 'e')) //只有 "+23" 或者 "2e+3" 才可以 { flag3=1; if(s[k+1] == '.' && k + 1 != s.size()-1) // "+.3" true { k++; continue; } else if(k == 0) { k++; continue; } else if(k != 0 && s[k-1] == 'e' && k != s.size() - 1) { k++; continue; } else return 0; } else return 0; } else return 0; } return 1; }};
阅读全文
0 0
- 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
- 升级到ckplayerX
- 6.1 YARN的架构
- 检索字符
- basically setting up a Django production server
- 给定一串数字和运算符,返回所有可能的结果,有效的运算符是+,
- leetcode 65. Valid Number
- Spark学习之RDD的概念
- 算法基础-线性代数-行列式
- uva 670 The dog task
- VMware虚拟机桥接方式与真实主机共享上网
- OpenCV 2.4.9 +VS2013 开发环境配置
- 分布式集群系统下的高可用session解决方案
- 初学Spring Boot遇到Whitelabel Error Page的解决办法
- iOS-格式化金额,三位一逗号