剑指offer:表示数值的字符串
2017-07-11 22:47
295 查看
题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。
class Solution { public: bool isNumeric(char* string) { if(string==NULL) return false; int len=strlen(string); int i=0,dot=0,nume=0,num=0;//i是索引,dot是.的个数,nume是e的个数,num是数字的个数 if(string[0]=='+'||string[0]=='-') i++;//当第一个是正负号时,继续遍历 while(i<len){ if(string[i]>='0'&&string[i]<='9'){//当前字符是数字时,num自加,继续遍历, i++; num=1; } else if(string[i]=='.'){//当前字符为.时, if(nume>0||dot>0) return false;//此时若前面有了e或者.时,则不是数值, i++; dot++; }else if(string[i]=='e'||string[i]=='E'){//当前字符为e时, if(num==0||nume>0) return false;若前面没有数字,或者已经有了e时,不是数值 i++; nume++; if(string[i]=='\0'){return false;}//e的后面没有数字时 if(string[i]=='+'||string[i]=='-'){i++;}//e的后面是正负号时,继续往下遍历 } else{return false;} } return true; } };
相关文章推荐
- 剑指offer——53.表示数值的字符串
- 剑指offer--面试题54:表示数值的字符串
- 剑指offer-表示数值的字符串
- 【剑指Offer】面试题54:表示数值的字符串
- 剑指Offer 面试题20:表示数值的字符串 Java代码实现
- 剑指offer-面试题54:表示数值的字符串
- 剑指offer——面试题54:表示数值的字符串
- 【剑指offer-解题系列(53)】表示数值的字符串
- 剑指offer--表示数值的字符串
- 剑指offer——表示数值的字符串(好题)(了解下库函数和正则)
- 剑指offer:表示数值的字符串
- 【剑指offer】面试题20:表示数值的字符串
- 剑指offer——面试题54:表示数值的字符串
- 剑指Offer——表示数值的字符串
- 剑指Offer:表示数值的字符串
- 剑指offer-表示数值的字符串-java
- 剑指offer(50)-表示数值的字符串
- 剑指offer 表示数值的字符串
- 剑指offer--表示数值的字符串
- 剑指offer——表示数值的字符串