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

Posted moonbeautiful

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-表示数值的字符串相关的知识,希望对你有一定的参考价值。

 

题目描述

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+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-表示数值的字符串的主要内容,如果未能解决你的问题,请参考以下文章

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

剑指Offer-代码的完整性面试题20:表示数值的字符串

剑指offer 表示数值的字符串(Java)

剑指offer五十三之表示数值的字符串

剑指OFFER----面试题20. 表示数值的字符串

LeetCode(剑指 Offer)- 20. 表示数值的字符串