53、表示数值的字符串
来源:互联网 发布:美团程序员工资待遇 编辑:程序博客网 时间:2024/05/16 14:23
题目描述:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。
思路:按照正常顺序分析,中间几个if else 之间的关系需要注意
代码:
class Solution {public: bool isNumeric(char* string) { if (string == NULL) return false; if (*string == '+' || *string == '-') string++; if (*string == '\0') return false; scanDigits(&string);//传入参数为对指针的引用,函数参数是指向指针的指针 int numeric = true; //如果仅仅是一个数字,不进下面的if直接返回true if (*string != '\0') { if (*string == '.') { string++;//之前把这句给落下了,坑啊 scanDigits(&string); if (*string == 'e' || *string == 'E') { numeric = isExponential(&string); } } else if (*string == 'e' || *string == 'E') { numeric = isExponential(&string); } else { numeric = false; } } return numeric && *string == '\0';//保证结尾没有别的东西}//scanDigits负责扫描字符串中0~9的数位void scanDigits(char** string) { while (**string != '\0' && **string >= '0' && **string <= '9') (*string)++;}//isExponential负责匹配科学计数法表示的数值的结尾部分bool isExponential(char** string) { if (**string != 'e' && **string != 'E') return false; (*string)++; if (**string == '+' || **string == '-') (*string)++; if (**string == '\0') return false; scanDigits(string); return (**string == '\0' ? true : false);//保证数字完了没有别的东西了}};
阅读全文
0 0
- 【53】表示数值的字符串
- 53、表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- trading system and methods
- MapReduce之求一组数据中最大值问题
- pyhotn3入门基础-15 装饰器与偏函数
- 视Geopainting GPSMapEdit.v2.1.78.8.16 1CD(可视化的GPS地图编辑器)
- 也是一种感慨
- 53、表示数值的字符串
- eclipse的从头配置
- Linux编程基础——GDB(设置断点)
- markdown编辑器简明资料
- 图结构解决农夫过河问题(二附源代码)
- 六种方法实现JavaScript数组去重
- HBase最佳实践-列族设计优化
- Android 自定义View format 属性定义
- C函数之memcpy()函数用法