1410 HTML 實體解析器

2021-10-13 13:17:35 字數 1657 閱讀 8880

題目描述:

「html 實體解析器」 是一種特殊的解析器,它將 html **作為輸入,並用字元本身替換掉所有這些特殊的字元實體。

html 裡這些特殊字元和它們對應的字元實體包括:

雙引號:字元實體為 " ,對應的字元是 " 。

單引號:字元實體為 』 ,對應的字元是 』 。

與符號:字元實體為 & ,對應對的字元是 & 。

大於號:字元實體為 > ,對應的字元是 > 。

小於號:字元實體為 < ,對應的字元是 < 。

斜線號:字元實體為 ⁄ ,對應的字元是 / 。

給你輸入字串 text ,請你實現乙個 html 實體解析器,返回解析器解析後的結果。

示例 1:

輸入:text = 「& is an html entity but &ambassador; is not.」

輸出:"& is an html entity but &ambassador; is not."

解釋:解析器把字元實體 & 用 & 替換

示例 2:

輸入:text = 「and i quote: 「…」」

輸出:「and i quote: 「…」」

示例 3:

輸入:text = 「stay home! practice on leetcode ?」

輸出:「stay home! practice on leetcode ?」

示例 4:

輸入:text = 「x > y && x < y is always false」

輸出:「x > y && x < y is always false」

示例 5:

輸入:text = 「leetcode.com⁄problemset⁄all」

輸出:「leetcode.com/problemset/all」

1 <= text.length <= 10^5

字串可能包含 256 個ascii 字元中的任意字元。

方法1:

(1)先將需要轉化的字串使用雜湊對映為對應的字元;

(2)對原始字串進行遍歷,當字元是『&』時,進一步判讀是否存在可以轉化的字元,若有,則進行轉化;

(3)使用字首樹應該能更優;

class

solution

else

else

if(i+

4size()

&&mp.

count

(text.

substr

(i,5))

)else

if(i+

5size()

&&mp.

count

(text.

substr

(i,6))

)else

if(i+

6size()

&&mp.

count

(text.

substr

(i,7))

)else}}

return res;}}

;

使用解析器

使用解析器 使用解析器是非常簡單,可以使用它自己的詞法分析器,但是,用fsyacc.exe 產生的解析器總是要求詞法分析器。在這一小節,我們將討論如何使用自己的詞法分析器,以及與解析器聯合。警告記住f 編譯器不能直接使用.fsl 和 fsy 檔案,需要用fslex.exe 和 fsyacc.exe ...

指令碼解析器

指令碼解析器 命令指令碼解析器,自建立一種指令碼語法,解釋執行它。目前指令碼形式類似於命令,沒有變數型別的概念,關鍵字為 if else while break continue 解釋與c語言一樣。上傳 型別 無型別,全為字串看待。作用域 當前大括號中,以及所有子大括號中,退出當前大括號則清除變數。...

網頁解析器

學習任務 1.認識網頁解析器 學習目標 知識目標 1.熟悉網頁解析器 能力目標 1.能夠自主編寫網頁解析器 獲取新url函式 獲取新的url def get new urls self,page url,soup 儲存url new urls set 獲取所有的url 獲取每乙個url new ur...