65.验证数字
来源:互联网 发布:数据挖掘原理 编辑:程序博客网 时间:2024/06/04 18:46
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.
参考答案(python):
class Solution(object): def isNumber(self, s): """ :type s: str :rtype: bool """ state = [{}, {'blank': 1, 'sign': 2, 'digit':3, '.':4}, {'digit':3, '.':4}, {'digit':3, '.':5, 'e':6, 'blank':9}, {'digit':5}, {'digit':5, 'e':6, 'blank':9}, {'sign':7, 'digit':8}, {'digit':8}, {'digit':8, 'blank':9}, {'blank':9}] currentState = 1 for c in s: if c >= '0' and c <= '9': c = 'digit' if c == ' ': c = 'blank' if c in ['+', '-']: c = 'sign' if c not in state[currentState].keys(): return False currentState = state[currentState][c] if currentState not in [3,5,8,9]: return False return True
性能:
参考答案:
class Solution(object): def isNumber(self, s): """ :type s: str :rtype: bool """ try: a = float(s.strip()) return True except: return False
性能:
参考答案(c++):
class Solution {public: bool isNumber(string str) { int state=0, flag=0; // flag to judge the special case "." while(str[0]==' ') str.erase(0,1);//delete the prefix whitespace while(str[str.length()-1]==' ') str.erase(str.length()-1, 1);//delete the suffix whitespace for(int i=0; i<str.length(); i++){ if('0'<=str[i] && str[i]<='9'){ flag=1; if(state<=2) state=2; else state=(state<=5)?5:7; } else if('+'==str[i] || '-'==str[i]){ if(state==0 || state==3) state++; else return false; } else if('.'==str[i]){ if(state<=2) state=6; else return false; } else if('e'==str[i]){ if(flag&&(state==2 || state==6 || state==7)) state=3; else return false; } else return false; } return (state==2 || state==5 || (flag&&state==6) || state==7); }};
性能:
阅读全文
0 0
- 65.验证数字
- 验证数字
- 数字验证
- 验证数字
- 验证数字
- 数字验证
- 验证类--数字验证
- 验证数字清除非数字
- 页面数字验证主程序
- 验证数字输入
- C#数字验证
- JavaScript 验证数字
- 数字验证码生成
- 数字验证内
- 数字验证码.asp
- js验证数字
- javascript验证数字
- javascript验证是数字
- eclipse搭建简单springboot-mybatis项目实现页面简单跳转
- 【HDU】 2579 Dating with girls(2)(BFS,可重复)
- java的分页显示
- 自定义控件属性的设置
- HDU 6170 Two strings(dp)
- 65.验证数字
- JS调用函数时,加括号与不加括号的区别
- 【NYOJ
- JSP中的编码设置
- 剑指offer_链表---删除链表中重复的结点
- 什么是IIoT工业物联网?
- c标签&List 判断空、获取长度、遍历map、格式化时间
- 透明位图的显示(TransparentBlt函数)
- (lintcode)第452题删除链表中的元素