[65] 有效数字

复制代码
 1 /**
 2  * @param {string} s
 3  * @return {boolean}
 4  */
 5 var isNumber = function (s) {
 6   const graph = {
 7     0: { 'blank': 0, '.': 2, 'digit': 6, 'sign': 1 },
 8     1: { 'digit': 6, '.': 2 },
 9     2: { 'digit': 3 },
10     3: { 'digit': 3, 'e': 4, 'E': 4 },
11     4: { 'digit': 5, 'sign': 7 },
12     5: { 'digit': 5 },
13     6: { 'digit': 6, '.': 3, 'e': 4, 'E': 4 },
14     7: { 'digit': 5 }
15   };
16 
17   let state = 0;
18 
19   for (c of s.trim()) {
20     //转换字符
21     if (c >= 0 && c <= 9) {
22       c = 'digit'
23     } else if (c === ' ') {
24       c = 'blank'
25     } else if (c === '+' || c === '-') {
26       c = 'sign';
27     }
28     //切换状态
29     state = graph[state][c]
30     if (state === undefined) {
31       return false
32     }
33   }
34   if (state === 3 || state === 6 || state === 5) {
35     return true
36   }
37   return false
38 };
复制代码

 

posted @   人恒过  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示