剑指offer--53.表示数值的字符串
2019-02-26 20:48
309 查看
题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。
时间限制:1秒 空间限制:32768K 热度指数:112273
本题知识点: 字符串
思路
见代码
class Solution { public: bool isNumeric(char* str) { //空字符串不为数字 if(*str == '\0') return false; bool e=false;//表示之前是否有e bool dot=false;//表示是否有dot int i=0; //从非符号位开始 if(str [i]=='+'||str[i]=='-') ++i; while(str[i]!='\0') { //在数字0-9之间,后移一位 if(str[i]-'0'<=9&&str[i]-'0'>=0) ++i; else if(str[i]=='.') { //在e之后出现小数点,则返回false if(e) return false; //已经出现过小数点,则返回false if(dot) return false; else dot=true; ++i; } else if(str[i]=='e'||str[i]=='E') {//若等于e,且后面还有数字,则置true,否则返回false,或者已经出现过e,返回false if(str[i+1]=='\0'||e) return false; else e=true; ++i; //去除e后面的符号位 if(str[i]=='+'||str[i]=='-') ++i; } else return false; } //若只有一个+,-号,则返回false if((str [0]=='+'||str[0]=='-')&&str[1]=='\0') return false; else return true; } };
相关文章推荐
- 剑指offer——53.表示数值的字符串
- 剑指offer-53.表示数值的字符串
- (C++)剑指offer-53:表示数值的字符串(字符串)
- 【剑指offer-解题系列(53)】表示数值的字符串
- 剑指offer——面试题54:表示数值的字符串
- 剑指offer(50)-表示数值的字符串
- 剑指Offer面试题54:表示数值的字符串
- 剑指offer--表示数值的字符串
- 剑指offer——表示数值的字符串
- 剑指Offer--054-表示数值的字符串
- 剑指offer 表示数值的字符串
- 剑指offer-----判断字符串是否表示数值(java版)
- 剑指offer(56):表示数值的字符串
- 剑指offer--表示数值的字符串
- 剑指Offer 面试题20:表示数值的字符串 Java代码实现
- 【剑指offer】面试题20:表示数值的字符串
- 剑指offer-面试题54:表示数值的字符串
- 剑指offer--面试题20:表示数值的字符串
- 剑指offer-表示数值的字符串
- 18、表示数值的字符串——剑指offer