class Solution {
public:
const char *trim_space(const char *s) {
while (*s == ' ')
s++;
return s;
}
bool isNumber(const char *s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
s = trim_space(s);
bool bf = false;
bool bs = false;
bool bn = false;
if (*s == '-' || *s == '+') s++;
while (*s) {
if (*s >= '0' && *s <= '9') {
bn = true;
s++;
} else if (*s == '.' && !bf) {
bf = true;
s++;
} else if (*s == 'e' && !bs) {
if (!bn) return false;
bs = true;
bf = true;
bn = false;
s++;
if (*s == '-' || *s == '+') s++;
} else if (*s == ' ' && (!s[1] || s[1] == ' ')) {
s++;
} else {
return false;
}
}
return bn;
}
};
Small Case: 4ms
Large Case: 24ms
Time: O(n)
Space: O(1)