leetcode#65. Valid Number

Validate if a given string can be interpreted as a decimal number.

Some examples:
“0” => true
" 0.1 " => true
“abc” => false
“1 a” => false
“2e10” => true
" -90e3 " => true
" 1e" => false
“e3” => false
" 6e-1" => true
" 99e2.5 " => false
“53.5e93” => true
" --6 " => false
“-+3” => false
“95a54e53” => false

Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one. However, here is a list of characters that can be in a valid decimal number:

Numbers 0-9
Exponent - “e”
Positive/negative sign - “+”/"-"
Decimal point - “.”
Of course, the context of these characters also matters in the input.

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.

思路
判定条件
for(){
先判断±
是否是数字
e
空格
小数点

}
刷到最恶心 且无技术含量的题 浪费时间!!!!
要是面试碰到算我倒霉
直接复制粘贴了 太麻烦

class Solution {public boolean isNumber(String s) {//num记录数字个数,words记录字母个数,dot记录点的个数int num = 0, words = 0, dot = 0, i = 0;s = s.trim();int len = s.length();//先排除 "", "xxe", "xxe+", "xxe-"  情况if (s.length() == 0 || s.charAt(s.length() - 1) == 'e' || s.charAt(s.length() - 1) == '+' || s.charAt(s.length() - 1) == '-')return false;//如果是"-xxx"或"+xxx",第一个带有正或负的符号,下标后移跳过第一个符号。if (s.charAt(0) == '-' || s.charAt(0) == '+') {len--;i++;}for (; i < s.length(); i++) {//排除 "+e", "-e"if ((len == 1 && s.charAt(i) == 'e') || (len == 1 && s.charAt(i) == '.')) {return false;} else if ((s.charAt(i) == 'e' && words != 1) && num != 0) {    //遍历到"e"时,前面没有其他字母并且有数字,就算是合格的,做下记录words++;            } else if ((s.charAt(i) == '.' && dot != 1) && words != 1) {//遍历到"."时,前面没有"."并且没有"e",就算是合格的,做下记录dot++;            } else if (s.charAt(i) >= '0' && s.charAt(i) <= '9') {//记录数字num++;} else if (s.charAt(i) == '+' || s.charAt(i) == '-') {// 排除 "xxe+","xxe-" 情况if (s.charAt(i - 1) != 'e') {return false;}} else {return false;}}//排除 "xxe."if (s.charAt(s.length() - 1) == '.' && words != 0)return false;return true;}
}
————————————————
版权声明:本文为CSDN博主「鹌鹑柯基」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/agvjh/article/details/78596134


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部