剑指offer | 训练题52:表示数值的字符串

来源:互联网 发布:繁体字转换简体字 mac 编辑:程序博客网 时间:2024/05/16 16:57

题目描述

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

思路

/** * 思路:首先分辨正数负数,是否带符号        判断是否浮点数        ----------        在上面两个的基础上:判断是否科学计数法 */class Solution {public:    bool isNumeric(char* string)    {        if(string == NULL) return false;        char flag = '0';        //判断前面是否带符号        if(*string == '+' || *string == '-') string++;        //if(isPositiveInt(string)) return true;        //判断是不是浮点数和科学计数法        while(*string != '\0'){            if(*string == '.') {flag = 'f'; string++; break;}//可能是浮点数            if(*(string+1) != '\0' && ( *string == 'E' || *string == 'e')) {flag = 'e'; string++; break; }//可能是科学计数法            if(*string < '0' || *string > '9') return false;            string++;        }        //如果还没检查完,说明不是整数        if(*string != '\0'){            if(flag == 'e' && (*string == '+' || *string == '-')) string++;            while(*string != '\0'){                if(flag == 'f' && *(string+1) != '\0' && ( *string == 'E' || *string == 'e')) {flag = 'e'; string++; break; }//可能是科学计数法                if(*string < '0' || *string > '9') return false;                string++;            }        }        //如果还没检查完,说明应该是小数点后还出现了e        if(*string != '\0'){            if(flag == 'e' && (*string == '+' || *string == '-')) string++;            while(*string != '\0'){                if(*string < '0' || *string > '9') return false;                string++;            }        }        return true;    }};
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 考科目二紧张怎么办如何消除紧张 考科目三紧张怎么办如何消除紧张 我的驾考准考证和发票丢了怎么办 科目二预约考试下一步点不了怎么办 护士资格证未注册过期没注册怎么办 上海护士延续体检有乙肝携带怎么办 护士资格证从诊所变更到医院怎么办 杭州驾考预约面授没有去怎么办 在外地考的驾驶证丢了怎么办 身份证和驾驶证在外地丢了怎么办 我有摩e照学c1照怎么办 科三网上预约超过了次数限制怎么办 驾照罚款没交过了周期怎么办 驾照考了科科目一想换个驾校怎么办 韩国货物被机场海关扣了怎么办 车管所查不到居住证信息怎么办 高中毕业两年了想考大学怎么办 我买的二手货车营运证是假的怎么办 移民到欧洲国家想去日本怎么办签证 签证要写工作单位如果没有怎么办 办护照时的身份证过期了怎么办 有摩托车驾照想考小车驾照怎么办 分管副局长能直接安排工作吗怎么办 我在北京打工老婆没地方住怎么办 我的车扣了32分怎么办 济南万科地产投诉电话不管用怎么办 买手机被商家欺骗买到合约机怎么办 向消协投诉有用吗?我该怎么办? 我住南开区想办公租房不知怎么办 租房提前退房房东不退押金怎么办 体检时候眼睛有一只是弱视怎么办? b本被扣分9分了怎么办 工作调动后在新单位退休医保怎么办 社保卡和医保卡丢了怎么办 医保卡挂失后又找到了怎么办 医保卡丢失忘了卡号怎么办? 医保卡丢了怎么办又记不住卡号 住院发票丢了医保不给报销怎么办 住院期间被医院丢失了医保卡怎么办 大学时的医保卡毕业后丢了怎么办 用身份证注册的移动卡丢了怎么办