aboutsummaryrefslogtreecommitdiff
path: root/other/valid_number.cpp
diff options
context:
space:
mode:
authorJack Sangdahl <[email protected]>2025-03-10 00:36:13 -0600
committerJack Sangdahl <[email protected]>2025-03-10 00:36:13 -0600
commit7c60dee83b436e8e8a667bf9f191beced8de4fc3 (patch)
treeeb7a24ee2067f92245c57bb118e85a1baf15df50 /other/valid_number.cpp
parent5d7cdc215e4ba1ec4cbb24c084cccb5e5e641468 (diff)
downloadleetcode-7c60dee83b436e8e8a667bf9f191beced8de4fc3.tar.gz
leetcode-7c60dee83b436e8e8a667bf9f191beced8de4fc3.zip
chore: move cpp and rust code to directoryHEADmaster
Diffstat (limited to 'other/valid_number.cpp')
-rw-r--r--other/valid_number.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/other/valid_number.cpp b/other/valid_number.cpp
new file mode 100644
index 0000000..6395fe0
--- /dev/null
+++ b/other/valid_number.cpp
@@ -0,0 +1,45 @@
+#include "leetcode.h"
+
+class Solution {
+public:
+ bool isNumber(string s) {
+ int state = 0, flag = 0;
+ while (s[0] == ' ' || s[s.size() - 1] == ' ')
+ s.erase(s.size() - 1, 1);
+ for (int i = 0; i < s.size(); i++) {
+ if ('0' <= s[i] && s[i] <= '9') {
+ flag = 1;
+ if (state <= 2)
+ state = 2;
+ else
+ state = (state <= 5) ? 5 : 7;
+ } else if (s[i] == '+' || s[i] == '-') {
+ if (state == 0 || state == 3)
+ state++;
+ else
+ return false;
+ } else if (s[i] == '.') {
+ if (state <= 2)
+ state = 6;
+ else
+ return false;
+ } else if (s[i] == 'e') {
+ if (flag && (state == 2 || state == 6 || state == 7))
+ state = 3;
+ else
+ return false;
+ } else
+ return false;
+ }
+ return (state == 2 || state == 5 || (flag && state == 6) || state == 7);
+ }
+};
+
+int main() {
+ Solution obj;
+ string s = "3";
+ if (obj.isNumber(s))
+ cout << "true";
+ else
+ cout << "false";
+}