leetcode valid number
来源:互联网 发布:java 字符串比较 编辑:程序博客网 时间:2024/06/03 23:44
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">果然是恶心人的题目。错了10次才AC。</span>
大概看看代码就知道了:
class Solution {public: bool isNumber(const char *s) {//valid chars: numbers, one dot not at either side, one 'e' not at either side, '-' at begin or before e//is these valid?: " 0 . 1 e 1 0 ", " - 0 e - 0"int i = 0, n = strlen(s), start = 0;int ie = -1, id = -1, ineg = -1, inege = -1, ipose = -1;char c = s[i];while (c == ' '){c = s[++i];}if (c == '-' || c == '+'){ineg = i;c = s[++i];}start = i;n--;while (n >= 0){if (s[n] == ' '){n--;}else{break;}}if (start == n && !isdigit(c) ){return false;}while (i <= n){if (isdigit(c)){c = s[++i];continue;}if (c == '.'){if (id >= 0){return false;}id = i;c = s[++i];}else if (c == 'e'){if (ie >= 0){return false;}ie = i;c = s[++i];}else if (c == '-'){if (inege >= 0){return false;}inege = i;c = s[++i];}else if (c == '+'){if (ipose >= 0){return false;}ipose = i;c = s[++i];}else{return false;}}while (s[i]){if (s[i] != '\0' && s[i] != ' '){return false;}i++;}if ((inege >= start) && (inege == n || inege == start || inege - ie != 1)){return false;}if ((ipose >= start) && (ipose == n || ipose == start || ipose - ie != 1)){return false;}if (ie == start || ie == n ){return false;}if (ie >start && id >= start){if (ie - id < 0 || (id == start && ie == id + 1)){return false;}}return true;}};
有人说用Python的偷法是:
def isNumber(self, s): try: float(s) return True except: return False
还有人说这是oj上最烂的题目,好多人顶。
0 0
- LeetCode: Valid Number
- LeetCode : Valid Number
- Leetcode: Valid Number
- [Leetcode] Valid Number
- leetcode 50: Valid Number
- [LeetCode] Valid Number
- 【leetcode】Valid Number
- [LeetCode]Valid Number
- [leetcode] Valid Number
- LeetCode | Valid Number
- LeetCode-Valid Number - 有限状态机
- leetcode Valid Number
- Leetcode: Valid Number
- 【leetcode】Valid Number
- Leetcode Valid Number
- LeetCode题解: Valid Number
- LeetCode Valid Number
- [Leetcode] Valid Number (Java)
- [cocos2dx]精灵遮罩
- Java代码输出是“father”还是“child”(一)
- 一个简单求和函数的C-》SSE-》AVX的实现过程
- lightoj 1018 (状态压缩DP)
- Oracle fga审计有这几个特性
- leetcode valid number
- mmc驱动的读写过程解析
- Spfa算法+bellman_ford算法
- 我和手机
- 堆排序
- hdu 4614 Vases and Flowers 线段树
- crunch - 根据字符集生成字典
- mapreduce编程(一)-二次排序
- oracle的Top-N获取数据结合的前n条记录,如(价格排行前三的水果信息)