码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer-表示数值的字符串

时间:2020-06-11 13:25:07      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:位置   一个   des   offer   ice   ranking   turn   https   ret   

 

题目描述

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
 
 
题目链接:

 

 

分析:

考虑到全部情况即可。

1、 +-号的两个位置、

2、 . 只能出现一次,且位置一定在e之前。

3、 e后面要有数值

 

 

 

 

 

public class Solution {
    public boolean isNumeric(char[] str) {
        //记录e的位置
        int epos = -1;
        //记录.的位置
        int ppos = -1;
        for(int i =0;i<str.length;i++){
            //+-号只能出现的位置在0或者e+1的位置
            if(i==epos+1&&(str[i]==‘+‘||str[i]==‘-‘)){
                
            }else if(str[i]>=‘0‘&&str[i]<=‘9‘){
                
            }else if(str[i] == ‘.‘ && ppos == -1){
                //. 只能出现一次。所以 ppos == -1
                ppos = i;
                //不能出现在e的后面
                if(epos == -1){
                    
                }else{
                    return false;
                }
            }else if(str[i] == ‘e‘ || str[i] == ‘E‘){
                epos = i;
                //e后面必须有数值
                if(i+1 != str.length){
                    
                }else{
                    return false;
                }
            }else{
                return false;
            }
        }
        return true;
    }
}

 

剑指offer-表示数值的字符串

标签:位置   一个   des   offer   ice   ranking   turn   https   ret   

原文地址:https://www.cnblogs.com/MoonBeautiful/p/13092452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!