Valid Number(使用DFA,有图)

本文通过DFA解决LeetCode上的Valid Number问题,分析了DFA状态图,并解释了每个状态的含义,包括初始状态、过渡状态和终止状态,涉及小数点、符号、科学计数法等元素。
摘要由CSDN通过智能技术生成

Validate if a given string is numeric.It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.

解题分析
好久好久没有用DFA了,才发现很多学过的东西真的很有用。这道题就可以用DFA来解决。先上图,然后对图进行一下分析。
这里写图片描述

q1是初始状态;
q2是个过渡状态,代表符号;
q3是个终止状态,表示不包含的小数点‘.’,只包含符号和纯数字的数;
q4是个过渡状态,代表包含符号和小数点的状态;
q5是个终止状态,代表不包含科学计数法的数;
q6是个过渡状态,代表接受e的状态;
q7是个过渡状态,代表接受e后,科学计数法包含符号的状态;
q8是个终止状态,代表包含所有合法符号的状态。

Accept代码

class Solution {
public:
    bool isNumber(string s) {
        int state=1;
        for(auto c:s){
            switch (state){
                case 1:
                    if(c==' ')              state=1;
                    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值