Leetcode--Valid Number
2014-10-23 20:42
302 查看
Validate if a given string is numeric.
Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.
Hide Tags
Math String
经过将近一系列的Wrong Answer,得到如下例子:
"e" false
"." false
" " false
".1" true
"3." true
". 1" false
"1 " true
"46.e3" true
"0.e" false
"6e6.5" false
通过以上例子,可以得到如下规则:
1)小数点的前或者后要有数字
2)e的前后必须都有数字,且后面必须是整数
3)处理字符串前面的空格和结尾的空格,去掉首位空格的子串中不能再有空格
Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.
Hide Tags
Math String
经过将近一系列的Wrong Answer,得到如下例子:
"e" false
"." false
" " false
".1" true
"3." true
". 1" false
"1 " true
"46.e3" true
"0.e" false
"6e6.5" false
通过以上例子,可以得到如下规则:
1)小数点的前或者后要有数字
2)e的前后必须都有数字,且后面必须是整数
3)处理字符串前面的空格和结尾的空格,去掉首位空格的子串中不能再有空格
class Solution { public: bool isNumber(const char *s) { int len=strlen(s); if(len<=0) return false; int i=0; while(i<len&&s[i]==' ') i++; while(len>0&&s[len-1]==' ') len--; if(i<len&&s[i]=='+'||s[i]=='-') i++; int digit=0;//判断s中是否有数字,有数字为1,没有数字为0 for(;i<len;i++) { if(isdigit(s[i])) { digit=1; continue; } else if(s[i]=='.') { i++; while(i<len&&isdigit(s[i])) { digit=1; i++; } if(i<len&&s[i]=='e'&&digit==1) { int poste=0;//e的后面必须有数字,并且数字是整数 i++; if(i<len&&s[i]=='+'||s[i]=='-') i++; while(i<len&&isdigit(s[i])) { poste=1; i++; } if(i==len&&poste==1) return true; else return false; } else if(i==len&&digit==1) return true; else return false; } else if(s[i]=='e'&&digit==1) { int poste=0; i++; if(i<len&&s[i]=='+'||s[i]=='-') i++; while(i<len&&isdigit(s[i])) { poste=1; i++; } if(i==len&&poste==1) return true; else return false; } else return false; } if(digit==1) return true; else return false; } };
相关文章推荐
- LeetCode65 Valid Number 解题报告
- LeetCode——Valid Number
- leetcode-65-Valid Number
- LeetCode(65) Valid Number
- [leetcode] Valid Number
- LeetCode - Valid Number - Frequent
- [LeetCode] Valid Number
- LeetCode: Valid Number
- leetcode ||65、 Valid Number
- [leetcode]Valid Number
- LeetCode 第 65 题(Valid Number)
- Leetcode_65 Valid Number
- LeetCode-Valid Number-合法数字-状态机
- [leetcode]Valid Number
- Leetcode NO.65 Valid Number
- [LeetCode]Valid Number
- LeetCode Online Judge 题目C# 练习 - Valid Number
- LeetCode-Valid Number - 有限状态机
- [LeetCode]Valid Number
- LeetCode - Valid Number