表示数值的字符串
Desicription
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Solution { public: bool isNumeric(string s) { int index = 0; for(; s[index] == ' '; index++); if(s[index] == '+' || s[index] == '-') index++; int n_num = 0, n_pt = 0; for(; ((s[index] <= '9' && s[index] >= '0') || s[index] == '.'); index++) s[index] == '.'?n_pt++:n_num++; if(!n_num || n_pt > 1) return false; if(s[index] == 'e' || s[index] == 'E'){ index++; if(s[index] == '+' || s[index] == '-') index++; int nNum = 0; for(; s[index] >= '0' && s[index] <= '9'; index++) nNum++; if(!nNum) return false; } for(; s[index] == ' '; index++); return !s[index]; } };
|