您的位置:首页 > Web前端

剑指offer - 表示数值的字符串

2018-08-25 20:41 260 查看

题目

表示数值的字符串
时间限制:1秒 空间限制:32768K 热度指数:89570
本题知识点: 字符串

题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。

解法

代码

class Solution {
public:
bool isNumeric(char* str)
{
if(str==NULL)
return false;

bool result;
result=scanInt(&str);
if(*str=='.')
{
str++;
result=scanUnsignInt(&str)||result;
}
if(*str=='e'||*str=='E')
{
str++;
result=scanInt(&str)&&result;
}
return result&&*str=='\0';
}

bool scanInt(char** str)
{
if(**str=='+'||**str=='-')
(*str)++;
return scanUnsignInt(str);
}

bool scanUnsignInt(char** str)
{
char* start=*str;
while(**str!='\0'&&**str<='9'&&**str>='0')
{
(*str)++;
}
return (*str)!=start;
}

};
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: