leetcode 65. Valid Number
来源:互联网 发布:total recall mac 编辑:程序博客网 时间:2024/06/07 08:43
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.
Update (2015-02-10):
The signature of the C++
function had been updated. If you still see your function signature accepts a const char *
argument, please click the reload button to reset your code definition.
这个题真的是太难一次ac了。。没有什么技术上的难度,主要是要考虑各种奇葩情况
public class Solution { public boolean isNumber(String s) { if(s==null||s.length()==0)return false; int len = s.length(); boolean posneg = false; boolean eflag = false; boolean space = false; boolean point = false; int count = 0; for(int j=0;j<len;j++){ if(s.charAt(j)>'9'||s.charAt(j)<'0')count++; } if(count==len)return false; int i = 0; while(i<len&&s.charAt(i)==' '){ i++; } if(i>=len)return false; if(i==len-1&&(s.charAt(i)<'0'||s.charAt(i)>'9'))return false; if ((s.charAt(i)=='+'||s.charAt(i)=='-')){ i++; posneg = true; if(s.charAt(i)!='.'&&(s.charAt(i)<'0'||s.charAt(i)>'9'))return false; } for(;i<len;i++){ if(s.charAt(i)!=' '&&space){ return false; } if(s.charAt(i)==' '){ space = true; continue; } if(s.charAt(i)=='.'){ if(!eflag&&!point){ if(i==0&&s.charAt(i+1)>='0'&&s.charAt(i+1)<='9'){ point = true; continue; } if(i==len-1&&s.charAt(i-1)>='0'&&s.charAt(i-1)<='9'){ point = true; continue; } if(i>0&&i<len-1&&((s.charAt(i-1)>='0'&&s.charAt(i-1)<='9')||(s.charAt(i+1)>='0'&&s.charAt(i+1)<='9'))){ point = true; continue; } } return false; } if(s.charAt(i)>='0'&&s.charAt(i)<='9')continue; if(s.charAt(i)=='e'&&!eflag&&i!=0&&(s.charAt(i-1)>='0'&&s.charAt(i-1)<='9'||s.charAt(i-1)=='.')&&i!=len-1){ if(s.charAt(i+1)=='+'||s.charAt(i+1)=='-'||(s.charAt(i+1)>='0'&&s.charAt(i+1)<='9')){ eflag = true; continue; } else return false; } if(s.charAt(i)=='-'||s.charAt(i)=='+'){ if(s.charAt(i-1)=='e'&&i!=len-1)continue; } return false; } return true; }}
阅读全文
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
- Redis事务
- Android热修复技术(二)------代码修复之底层替换原理
- 树莓派ubuntu mate 使能摄像头
- java虚拟机对锁优化所做的努力
- caffe简易上手指南(三)—— 使用模型进行fine tune
- leetcode 65. Valid Number
- 葵花宝典 十三 EL表达式
- Spark性能调优之数据倾斜调优一站式解决方案原理与实战
- Spring事物介绍
- Mysql net start mysql启动,提示发生系统错误 5 拒绝访问
- linux忘记了密码怎么办
- Windows编程之旅(二)
- PHP学习之Pimple运行流程详解
- CSS属性之颜色与字体格式