java自动机类型题目

本文通过分析剑指 Offer 20. 表示数值的字符串问题,探讨如何利用Java实现确定有穷自动机。核心思路包括定义状态、输入及状态转移图,并通过循环读取输入、查询状态转移来更新状态。
摘要由CSDN通过智能技术生成

例题是这个

剑指 Offer 20. 表示数值的字符串

思考

自动机就是数字电路的状态图,马尔可夫过程的状态转移矩阵
    自动机三要素
    1.状态
    2.输入
    3.状态转移图(同时描述了"状态"与"输入")

    java实现自动机
    辅助数据结构:
    1.使用枚举类型实现"状态"与"输入"
    2.使用Map<枚举类型,枚举类型>实现状态转移图
    3.状态记录变量 state

    代码思想:
    循环
        读取输入
        根据 "输入"+"当前状态" 查询状态转移图
        更新状态

代码

import java.util.HashMap;
import java.util.Map;

class Solution20 {
    public boolean isNumber(String s) {
        //代码实现状态转移图
        Map<State, Map<CharType, State>> transfer = new HashMap<State, Map<CharType, State>>();
        Map<CharType, State> initialMap = new HashMap<CharType, State>() {
  {
            put(CharType.CHAR_SPA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值