《剑指offer》表示数值的字符串

【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】

题目链接:?rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+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==nullptr)return false;if(*string=='+' || *string=='-')++string;if(*string=='\0')return false;bool judge = true;scanDigits(&string);if(*string!='\0'){if(*string=='.'){++string;scanDigits(&string);if(*string=='e' || *string=='E')judge = isExponential(&string);}else if(*string=='e' || *string=='E')judge = isExponential(&string);elsejudge = false;}return judge && (*string=='\0');}void scanDigits(char **string){while(**string!='\0' && **string>='0' && **string<='9')++(*string);}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');}};

版权声明:本文为博主原创文章,如果转载,,请注明出处

谁的指间滑过了千年时光;谁在反反复复中追问可曾遗忘;

《剑指offer》表示数值的字符串

相关文章:

你感兴趣的文章:

标签云: