剑指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; }};
阅读全文
0 0
- 剑指offer | 训练题52:表示数值的字符串
- 剑指offer--表示数值的字符串
- 剑指offer 54-表示数值的字符串
- 《剑指offer》表示数值的字符串
- 剑指offer—表示数值的字符串
- 剑指offer:表示数值的字符串
- 剑指Offer--054-表示数值的字符串
- 《剑指offer》:[54]表示数值的字符串
- 剑指offer-表示数值的字符串
- 《剑指offer》-表示数值的字符串
- 剑指offer 表示数值的字符串
- 剑指offer-53.表示数值的字符串
- 剑指offer:表示数值的字符串
- 剑指Offer:表示数值的字符串
- 剑指offer--表示数值的字符串
- 剑指offer--表示数值的字符串
- 剑指offer:表示数值的字符串
- 剑指Offer---表示数值的字符串
- 动态规划:HDU1176-免费馅饼
- Python标准库--random,sys,time
- jdk 中常用的 xml 数据解析
- OPP文件传输
- 关于C中的\n
- 剑指offer | 训练题52:表示数值的字符串
- LeetCode 561 Array Partition I
- Redis-数据库管理
- 方法(二)
- 孪生数(因数之和)
- Android Studio在导入moudle后出现layout布局文件无法显示
- 股票涨跌预测方法之一:下载股票数据
- test
- Windows access Linux