Valid Number
来源:互联网 发布:mac mini 音频输出 编辑:程序博客网 时间:2024/05/01 13:52
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.
public class Solution { public int index;public boolean isNumber(String s) {// Start typing your Java solution below// DO NOT write main() functionindex = 0;if(s.length() == 0)return false;// 去掉空格while(index < s.length() && s.charAt(index) == ' ')index++;// e 之前是否为数字if(!isNum(s, false))return false;// e 之后是否为数字if(index < s.length() && s.charAt(index) == 'e'){index++;if(!isNum(s, true))return false;}while(index < s.length() && s.charAt(index) == ' ')index++;if(index == s.length())return true;elsereturn false;}public boolean isNum(String s, boolean flag){boolean res = false;if(index < s.length() && (s.charAt(index) == '-' || s.charAt(index) == '+'))index++;boolean dot = false;while(index < s.length()){if(s.charAt(index) <= '9' && s.charAt(index) >= '0'){res = true;index++;}else if(s.charAt(index) == '.'){if(flag) // e 后面数字不带点return false;if(dot) // 多于一个点return false;dot = true;index++;}else if(s.charAt(index) == 'e' || s.charAt(index) == ' ')return res;elsereturn false;}return res;}}
One exceptional solution!
public class Solution {public boolean isNumber(String s) {if (s == null || s.length() == 0)return false;int index = 0;index = skipWhiteSpaces(s, index);index = skipSigns(s, index);int n1 = skipDigits(s, index);index += n1;if (index < s.length() && s.charAt(index) == '.')index++;int n2 = skipDigits(s, index);index += n2;if (n1 == 0 && n2 == 0)return false;if (index < s.length()&& (s.charAt(index) == 'e' || s.charAt(index) == 'E')) {index++;index = skipSigns(s, index);int n3 = skipDigits(s, index);if (n3 == 0)return false;index += n3;}index = skipWhiteSpaces(s, index);return index == s.length();}public int skipWhiteSpaces(String s, int index){while(index < s.length() && s.charAt(index) == ' ')index++;return index;}public int skipSigns(String s, int index){if(index < s.length() && (s.charAt(index) == '+' || s.charAt(index) == '-'))return index + 1;return index;}public int skipDigits(String s, int index){int counter = index;while(counter < s.length() && s.charAt(counter) >= '0' && s.charAt(counter) <= '9')counter++;return counter - index;}}
- Valid Number
- Valid Number
- Valid Number
- Valid Number
- Valid Number
- Valid Number
- Valid Number
- Valid Number
- Valid Number
- Valid Number
- Valid Number
- Valid Number
- Valid number
- Valid Number
- Valid Number
- Valid Number
- Valid Number
- Valid Number
- iptables命令详解(链接)
- Add Binary
- DataGridView导出Excel 隐藏列不显示
- 字符串分割(C++)
- linux下各种操作的权限要求。
- Valid Number
- vi/vim 删除:一行, 一个字符, 单词, 每行第一个字符 命令
- _itoa in the g++
- 加载驱动模块时Device or resource busy的解决方法
- PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询–合理利用算法
- 线性表1.1
- tomcat发布javaEE项目的两种方式
- 黑马程序员-枚举与反射
- dlerror