Leetcode 65:Valid Number
2017-11-27 19:30
417 查看
Validate if a given string is numeric.
Some examples:
Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.
想要ac这个问题真的是要历经千辛万苦,不断的根据评测结果修改自己的条件代码,最终才能符合要求。
以下是leetcode大神ac的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<st
4000
r.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);
}
};
简而言之,就如同客户需求,需要不断的更改完善,更重要的是自己要相对足够全面,才能成功解决问题。
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.
想要ac这个问题真的是要历经千辛万苦,不断的根据评测结果修改自己的条件代码,最终才能符合要求。
以下是leetcode大神ac的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<st
4000
r.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);
}
};
简而言之,就如同客户需求,需要不断的更改完善,更重要的是自己要相对足够全面,才能成功解决问题。
相关文章推荐
- leetcode 65: Valid Number
- LeetCode 65 — Valid Number(java)
- LeetCode_65---Valid Number
- LeetCode65——Valid Number
- LeetCode65 Valid Number
- LeetCode 第 65 题(Valid Number)
- Leetcode 65 Valid Number
- LeetCode 65 Valid Number
- LeetCode 第 65 题(Valid Number)
- LeetCode65——Valid Number
- [LeetCode]65 Valid Number
- LeetCode65 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 27] 65 Valid Number