日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

处理浮点数的状态机

發(fā)布時(shí)間:2025/3/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 处理浮点数的状态机 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這個(gè)問(wèn)題來(lái)自于 leetcode 065:?

Valid Number

?

如果用正則表達(dá)式來(lái)寫(xiě)一個(gè)浮點(diǎn)數(shù)的解析,大概是這樣的:

?

[+-]?(([0-9]+\.?) | (\.[0-9]))[0-9]*([eE][+-]?[0-9]+)?

我自己使用 dot 畫(huà)了一個(gè)狀態(tài)機(jī)出來(lái):

?

?

如果編寫(xiě)代碼來(lái)模擬這個(gè)狀態(tài)機(jī),可以拆分為 “eE" 前后兩部分分開(kāi)處理; “eE” 前面的部分,還可以拆成 “.” 前后兩部分(如果有點(diǎn))來(lái)編寫(xiě)。

這道題目在 leetcode 上難度為 Hard,可以看出來(lái)這種不起眼的小細(xì)節(jié),更能考驗(yàn)基本功。

?

------------------

由于字?jǐn)?shù)限制,附上我話這個(gè)狀態(tài)機(jī)使用的源碼:

1 digraph { 2 graph [fontname = "Microsoft YaHei",fontsize=16 ranksep=1.0 splines=1 overlap=false size="16, 16" compound=true] 3 edge [fontname = "Microsoft YaHei",fontsize=16] 4 node [fontname = "Microsoft YaHei",fontsize=16 weight=2 rank=same width=1 rankdir=LR] 5 6 p0[label="Start"] 7 p2[label="Initial-Check"] 8 p4[label="Dot-First"] 9 p5[label="After-E"] 10 p6[label="After-E-Mark"] 11 p7[label="Almost-Done"] 12 p8[label="End"] 13 p9[label="Sign-Mark"] 14 pa[label="After-Dot"] 15 16 17 p0 -> p9[label="[+-]"] 18 p0 -> p9[label="blank-string"] 19 20 p9 -> p4[label="``.''"] 21 22 p9 -> p2[label="[0-9]"] 23 24 p2 -> p2[label="[0-9]"] 25 p2 -> pa[label="``.''"] 26 p2 -> pa[label="blank-string"] 27 p4 -> pa[label="[0-9]"] 28 pa -> pa[label="[0-9]"] 29 pa -> p8[label="$"] 30 pa -> p5[label="[Ee]"] 31 p5 -> p6[label="[+-]"] 32 p5 -> p6[label="blank-string"] 33 p6 -> p7[label="[0-9]"] 34 p7 -> p7[label="[0-9]"] 35 p7 -> p8[label="$"] 36 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/llhf/p/4728758.html

總結(jié)

以上是生活随笔為你收集整理的处理浮点数的状态机的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。