请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.
来源:互联网 发布:淘宝怎么优化 编辑:程序博客网 时间:2024/06/04 13:47
using namespace std;
class Solution {
public:
bool scanUnsignedInteger(char** str){
const char* before = *str;
while(**str!='\0' && **str >= '0' && **str <= '9')
++(*str);
//当str中存在若干0-9的数字时,返回true
return *str > before;
}
bool scanInteger(char** str){
if(**str=='+' || **str == '-')
++(*str);
return scanUnsignedInteger(str);
}
bool isNumeric(char* string)
{
if(string == NULL)
return false;
bool numeric = scanInteger(&string);
//如果出现‘.’则接下来是数字的小数部分
if(*string=='.'){
++string;
//下面一行代码用||的原因
//1.小数后面可以没有数字,如.123等于0.123
//2. 2. 等于2.0
//3. 1.2
numeric = scanUnsignedInteger(&string) || numeric;
}
//如果出现‘e’或者'E',则接下来是数字部分
if(*string == 'e' || *string == 'E'){
++string;
//下面代码用&&的原因是:
//1.当e或者E前面没有数字时,整个字符串不能表示数字,如.e1、e1
//2.当e或者E后面没有整数时,整个字符串不能表示数字,如12e、12e+5.4
numeric = numeric && scanInteger(&string);
}
return numeric && *string == '\0';//是数字,且字符串结束。才能返回true
}
};
class Solution {
public:
bool scanUnsignedInteger(char** str){
const char* before = *str;
while(**str!='\0' && **str >= '0' && **str <= '9')
++(*str);
//当str中存在若干0-9的数字时,返回true
return *str > before;
}
bool scanInteger(char** str){
if(**str=='+' || **str == '-')
++(*str);
return scanUnsignedInteger(str);
}
bool isNumeric(char* string)
{
if(string == NULL)
return false;
bool numeric = scanInteger(&string);
//如果出现‘.’则接下来是数字的小数部分
if(*string=='.'){
++string;
//下面一行代码用||的原因
//1.小数后面可以没有数字,如.123等于0.123
//2. 2. 等于2.0
//3. 1.2
numeric = scanUnsignedInteger(&string) || numeric;
}
//如果出现‘e’或者'E',则接下来是数字部分
if(*string == 'e' || *string == 'E'){
++string;
//下面代码用&&的原因是:
//1.当e或者E前面没有数字时,整个字符串不能表示数字,如.e1、e1
//2.当e或者E后面没有整数时,整个字符串不能表示数字,如12e、12e+5.4
numeric = numeric && scanInteger(&string);
}
return numeric && *string == '\0';//是数字,且字符串结束。才能返回true
}
};
阅读全文
0 0
- 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.
- 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.
- 实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。
- 请实现一个函数用来判断字符串是否表示数值
- 字符串是否表示数值
- 判断一个字符串是否可以表示一个数值
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- 表示数值的字符串(Java实现)
- 剑指offer-----判断字符串是否表示数值(java版)
- 判断String是否为数值,包括小数和负数
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- 表示数值的字符串
- ie scrollbar
- JavaScript中字符串操作方法
- DelayQueue 队列
- 高性能的随机数算法std::mt19937
- lua table成员赋值
- 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.
- python获取代理IP
- Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
- AD新建工程
- HDU 3435 A new Graph Game(二分图最优匹配:有向环覆盖)
- 【词汇详解】Session和Cookie详解
- AndroidStudio 布局文件 布局预览
- 判断一个节点是否在一棵二叉树中
- HTML5:Getting to Know HTML5