亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【學習打卡】第19天 數據結構和算法

有效数字(leetcode - 65)

给你一个字符串 s ,如果 s 是一个 有效数字 ,请返回 true 。
图片描述

  • 构建一个表示状态的图
  • 遍历字符串,并沿着图走,如果到了某节点无路可走就返回false
  • 遍历结束,如走到3、5、6,就返回true,否则返回false
var isNumber = function(s) {
    const graph = {
        0: {'blank': 0, 'sign': 1, 'dot': 2, 'digit': 6},
        1: {'digit': 6, 'dot': 2},
        2: {'digit': 3},
        3: {'digit': 3, 'e': 4},
        4: {'digit': 5, 'sign': 7},
        5: {'digit': 5},
        6: {'digit': 6, 'dot': 3, 'e': 4},
        7: {'digit': 5}
    }

    let state = 0;
    for(let c of s.trim()) {
        if(c >= '0' && c<='9'){
            c = 'digit';
        }else if(c === ' ') {
            c = 'blank';
        }else if(c === '+' || c==='-') {
            c = 'sign';
        }else if(c === '.') {
            c = 'dot';
        }else if(c === 'e' || c === 'E') {
            c = 'e';
        }
        state = graph[state][c];
        if(state === undefined) {
            return false;
        }
    }
    if(state === 3 || state === 5 || state === 6) {
        return true;
    }
    return false;
};
點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
3
獲贊與收藏
9

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消