JZ53 表示数值的字符串
本文最后更新于:2022年4月9日 中午
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| class Solution { public:
bool isNumeric(string str) { bool sign = false; bool decimal = false; bool hasE = false; int n = str.size(); for (int i = 0; i < n; ++i) { if (str[i] == 'e' || str[i] == 'E') { if (i == n-1) return false; if (hasE) return false; hasE = true; } else if (str[i] == '+' || str[i] == '-') { if (sign && (str[i-1] != 'e' && str[i-1] != 'E') ) return false; if (!sign && i > 0 && (str[i-1] != 'e' && str[i-1] != 'E') ) return false; sign = true; } else if (str[i] == '.') { if (hasE || decimal) return false; decimal = true; } else if (str[i] < '0' || str[i] > '9') return false; } return true; } };
|