兼容E问题

来源:9-3 LeetCode:65. 有效数字

谦瑞

2022-03-26

老师,查到的是用toLowerCase()方法,但是在这里具体怎么使用呢。
/**

  • @param {string} s

  • @return {boolean}
    */
    var isNumber = function(s) {
    const graph = {
    0:{‘blank’:0, ‘sign’:1, ‘.’:2, ‘digit’:6},
    1:{‘digit’:6, ‘.’:2},
    2:{‘digit’:3},
    3:{‘digit’:3, ‘e’:4},
    4:{‘digit’:5, ‘sign’:7},
    5:{‘digit’:5},
    6:{‘digit’:6, ‘.’:3, ‘e’:4},
    7:{‘digit’:5}
    };

    let state = 0;
    for(c of s.trim()){
    if(c >= ‘0’ && c<=‘9’){
    c = ‘digit’;
    }else if(c === ’ ‘){
    c = ‘blank’;
    }else if(c===’+’ || c===’-’){
    c = ‘sign’;
    }
    state = graph[state][c];
    if(state === undefined){
    return false;
    }
    }
    if(state === 3 || state === 5 || state === 6){
    return true;
    }
    return false;
    };
    尝试了人家讲的几种方法,都报错了,求指导。

写回答

1回答

lewis

2022-03-26

把s变成小写,或者在状态机里所有e的地方同时加个大写E,值跟e保持一致

0
3
谦瑞
非常感谢!
2022-03-26
共3条回复

JavaScript版数据结构与算法 轻松解决前端算法面试

夯实算法基础,填补技术短板,助力面试考题最后一公里

2481 学习 · 683 问题

查看课程