剑指offer——面试题54:表示数值的字符串
来源:互联网 发布:h3c交换机端口汇聚 编辑:程序博客网 时间:2024/06/08 15:41
题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是
代码:
class Solution {public: void scanDigits(char** string) { while(**string != '\0' && **string >= '0' && **string <= '9') ++(*string); } bool isExponential(char** string) // 判断 e||E 后面的 { if(**string != 'e' && **string != 'E') // 注意是 && ,不是 || return false; ++(*string); if(**string == '+' || **string == '-') ++(*string); if(**string == '\0') // 如果只有+- 号,没有数字,依然返回 false return false; scanDigits(string); return (**string == '\0')? true : false; } bool isNumeric(char* string) { if(string == NULL) return false; if(*string == '+' || *string == '-') ++(string); if(*string == '\0') // 如果只有+- 号,没有数字,依然返回 false return false; bool flag = true; scanDigits(&string);// 先扫描整数部分 if(*string != '\0') { if(*string == '.') // 如果有小数部分 { ++ string; scanDigits(&string); // 再扫描一下数字 if(*string =='e' || *string == 'E') flag = isExponential(&string); } else // 只有整数部分 if(*string =='e' || *string == 'E') flag = isExponential(&string); else flag = false; } return flag && *string == '\0'; }};
分析:对于一个数值,最前面可能有一个 + - 号,接下来是 0 ~ 9 数字表示整数部分。如果数值是小数,接下来会遇到一个 小数点 . ,如果数值使用科学计数法表示,接下来是一个 e 或者 E,下面紧跟着一个整数(可以有正负号)表示指数。
阅读全文
2 0
- 【剑指Offer学习】【面试题54:表示数值的字符串】
- 剑指offer-面试题54:表示数值的字符串
- 剑指offer--面试题54:表示数值的字符串
- 剑指Offer面试题54:表示数值的字符串
- 剑指offer-面试题54-表示数值的字符串
- 【剑指Offer】面试题54:表示数值的字符串
- 剑指offer面试题[54]-表示数值的字符串
- 剑指offer——面试题54:表示数值的字符串
- 剑指offer--面试题20:表示数值的字符串
- 【剑指offer】面试题20:表示数值的字符串
- 面试题54——表示数值的字符串
- 《剑指Offer》学习笔记--面试题54:表示数值的字符串
- 剑指offer—表示数值的字符串
- 面试题54:表示数值的字符串
- 面试题54:表示数值的字符串
- 面试题54:表示数值的字符串
- 剑指Offer 面试题20:表示数值的字符串 Java代码实现
- 剑指offer 54-表示数值的字符串
- SoapUI Cookbook.pdf 英文原版 免费下载
- 内连接vs外连接
- 原型模式
- http://blog.csdn.net/lfdfhl/article/details/8220729
- struts2(3)---通配符和include优化配置
- 剑指offer——面试题54:表示数值的字符串
- 直接插入排序
- http://blog.csdn.net/lfdfhl/article/details/8302457
- 第十四周 项目一 验证算法3.希尔排序
- 文章标题
- 架构师之路历史文章搜索
- 橘子生活小记之英文的重要性之git叛变
- 文章标题 第十四周学习报告
- CSS(十八)