49.表示数值的字符串
2016-05-17 21:26
169 查看
表示数值的字符串
参与人数:1204时间限制:1秒空间限制:32768K
本题知识点: 字符串
算法知识视频讲解
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
当要修改指针本身的值,而不是指针指向的值的时候,要传递指针的指针。
参与人数:1204时间限制:1秒空间限制:32768K
本题知识点: 字符串
算法知识视频讲解
题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。// 48.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" class Solution { public: bool isNumeric(char* str) { bool retVal = false; if (str == NULL) return retVal; if (*str == '+' || *str == '-') ++str; if (str == '\0') return retVal; scanDigital(&str); if (*str != '\0') { if (*str == '.') { ++str; scanDigital(&str); if (*str == 'e' || *str == 'E') { retVal = isE(&(++str)); } else if (*str == '\0'){ retVal = true; } } else if (*str == 'e' || *str == 'E') { retVal = isE(&(++str)); } } else { retVal = true; } return retVal && *str == '\0'; } void scanDigital(char** str) { while (**str >= '0' && **str <= '9' && **str != '\0') { ++(*str); } } bool isE(char** str) { if (**str == '+' || **str == '-') ++(*str); if (**str == '\0') return false; scanDigital(str); if (**str != '\0') return false; else return true; } }; int _tmain(int argc, _TCHAR* argv[]) { char str[] = "3.1416"; Solution s; bool result = s.isNumeric(str); return 0; }
当要修改指针本身的值,而不是指针指向的值的时候,要传递指针的指针。
相关文章推荐
- jQuery -- 遍历
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
- [原创]java WEB学习笔记08:HttpServletRequest & ServletRequest
- CSS学习记录
- 设计模式之模板设计模式
- 5月份FPGA总结.
- powershell小工具
- {sharepoint} SetPermission
- IO设备的分类
- 算法基础 - 树的最近公共祖先
- Problem3-1010
- poj 3180 The Cow Prom 强连通分量tarjan
- Codeforces Round #353 (Div. 2)D. Tree Construction
- MyEclipse Trial Expired 问题及解决方案
- 实现一个通讯录(二:动态的实现)
- 设计模式之模板方法模式
- 为steghide实现字典破解功能
- Faster R-CNN
- 用交叉验证改善模型的预测表现(适用于Python和R)
- 代理服务器与NAT