mirror of https://github.com/doocs/leetcode.git
38 lines
1.1 KiB
Java
38 lines
1.1 KiB
Java
class Solution {
|
|
public boolean isNumber(String s) {
|
|
int n = s.length();
|
|
int i = 0;
|
|
if (s.charAt(i) == '+' || s.charAt(i) == '-') {
|
|
++i;
|
|
}
|
|
if (i == n) {
|
|
return false;
|
|
}
|
|
if (s.charAt(i) == '.'
|
|
&& (i + 1 == n || s.charAt(i + 1) == 'e' || s.charAt(i + 1) == 'E')) {
|
|
return false;
|
|
}
|
|
int dot = 0, e = 0;
|
|
for (int j = i; j < n; ++j) {
|
|
if (s.charAt(j) == '.') {
|
|
if (e > 0 || dot > 0) {
|
|
return false;
|
|
}
|
|
++dot;
|
|
} else if (s.charAt(j) == 'e' || s.charAt(j) == 'E') {
|
|
if (e > 0 || j == i || j == n - 1) {
|
|
return false;
|
|
}
|
|
++e;
|
|
if (s.charAt(j + 1) == '+' || s.charAt(j + 1) == '-') {
|
|
if (++j == n - 1) {
|
|
return false;
|
|
}
|
|
}
|
|
} else if (s.charAt(j) < '0' || s.charAt(j) > '9') {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
} |