【LeetCode:1410. HTML 實體解析器 | 模擬+哈希表+字符串+庫函數】

在這里插入圖片描述

🚀 算法題 🚀

🌲 算法刷題專欄 | 面試必備算法 | 面試高頻算法 🍀
🌲 越難的東西,越要努力堅持,因為它具有很高的價值,算法就是這樣?
🌲 作者簡介:碩風和煒,CSDN-Java領域新星創作者🏆,保研|國家獎學金|高中學習JAVA|大學完善JAVA開發技術棧|面試刷題|面經八股文|經驗分享|好用的網站工具分享💎💎💎
🌲 恭喜你發現一枚寶藏博主,趕快收入囊中吧🌻
🌲 人生如棋,我愿為卒,行動雖慢,可誰曾見我后退一步?🎯🎯

🚀 算法題 🚀

在這里插入圖片描述

在這里插入圖片描述

🍔 目錄

    • 🚩 題目鏈接
    • ? 題目描述
    • 🌟 求解思路&實現代碼&運行結果
      • ? 字符串處理+庫函數
        • 🥦 求解思路
        • 🥦 實現代碼
        • 🥦 運行結果
      • ? 模擬+哈希表+字符串
        • 🥦 求解思路
        • 🥦 實現代碼
        • 🥦 運行結果
    • 💬 共勉

🚩 題目鏈接

  • 1410. HTML 實體解析器

? 題目描述

「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. 直接調用replaceAll的替換函數,但是需要注意一點的是,"&“替換”&“要放到最后進行,如果之前替換了,那么很有可能替換后的”&"與其它的單詞組成要可以繼續替換的單詞,繼續進行替換,從而最終的結果發生改變。
  2. 具體實現代碼如下:
🥦 實現代碼
class Solution {public String entityParser(String text) {text=text.replaceAll("&quot;","\"");text=text.replaceAll("&apos;","'");text=text.replaceAll("&gt;",">");text=text.replaceAll("&lt;","<");text=text.replaceAll("&frasl;","/");text=text.replaceAll("&amp;","&");return text;}
}
🥦 運行結果

在這里插入圖片描述

? 模擬+哈希表+字符串

🥦 求解思路
  1. 提前通過Hash表記錄替換的映射,模擬遍歷,從"&“開始,”;'"結束,找到要被替換的單詞,通過映射表返回替換的單詞,最后通過StringBuilder進行快速拼接。
  2. 具體實現代碼如下:
🥦 實現代碼
class Solution {public String entityParser(String text) {HashMap<String,String> map=new HashMap<>(){{put("&quot;", "\"");put("&apos;", "'");put("&amp;", "&");put("&gt;", ">");put("&lt;", "<");put("&frasl;", "/");}};int n=text.length();StringBuilder sb=new StringBuilder();for(int i=0;i<n;i++){char c=text.charAt(i);if(c=='&'){int start=i;while(i<n&&text.charAt(i)!=';') i++;String str=text.substring(start,Math.min(i+1,n));if(map.containsKey(str)){sb.append(map.get(str));}else{i=start;sb.append(c);}}else{sb.append(c);}}return sb.toString();}
}
🥦 運行結果

在這里插入圖片描述


💬 共勉

最后,我想和大家分享一句一直激勵我的座右銘,希望可以與大家共勉!

在這里插入圖片描述

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165230.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165230.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165230.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C語言】中,輸入一個數組,實現將輸入的n個數字按照從大到小的順序輸出。【通俗簡單易懂】

本篇文章中&#xff0c;我們將講述在C語言中&#xff0c;輸入一個數組&#xff0c;如何用for循環實現將輸入的n個數字按照從大到小輸出。 一.定義數組并初始化 首先&#xff0c;我們定義一個整形的數組并將其初始化。輸入n&#xff0c;來決定數組中整數的個數。 然后用for循…

通過HTML網頁對mysql數據庫進行增刪改查(CRUD實例)

首先我們得了解一下大致的架構 ,如下: 我們采用自底向上的方式進行開發, 一、先寫mysql數據庫 二、再寫java后端(Spring MVC架構)(這個是什么東西不懂不要緊,跟著步驟做就行了) 三、最后寫前端頁面(HTML) 一、 Mysql數據庫部分 我們要通過網頁對數據庫進行開發&#xff0c;…

解決:Gitee + PicGo配置圖床失敗

解決&#xff1a;Gitee PicGo配置圖床失敗 PicGo安裝插件的時候選擇&#xff1a;gitee-uploader&#xff0c;不要選擇gitee&#xff01; 在Gitee新建的圖床倉庫中設置一個images文件夾&#xff0c;用來保存上傳的圖片&#xff0c;但是要注意在PicGo中的path中要寫上路徑/img…

數據庫基礎入門 — SQL運算符

我是南城余&#xff01;阿里云開發者平臺專家博士證書獲得者&#xff01; 歡迎關注我的博客&#xff01;一同成長&#xff01; 一名從事運維開發的worker&#xff0c;記錄分享學習。 專注于AI&#xff0c;運維開發&#xff0c;windows Linux 系統領域的分享&#xff01; 本…

linux的基礎命令

文章目錄 linux的基礎命令一、linux的目錄結構&#xff08;一&#xff09;Linux路徑的描述方式 二、Linux命令入門&#xff08;一&#xff09;Linux命令基礎格式 三、ls命令&#xff08;一&#xff09;HOME目錄和工作目錄&#xff08;二&#xff09;ls命令的參數1.ls命令的-a選…

基于yolov2深度學習網絡的喝水行為檢測系統matlab仿真

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 4.1、YOLOv2網絡原理 4.2、基于YOLOv2的喝水行為檢測 5.算法完整程序工程 1.算法運行效果圖預覽 2.算法運行軟件版本 matlab2022a 3.部分核心程序 clc; clear; close all; warning off;…

PPT思維導圖怎么做?這2個思維導圖工具墻裂推薦!

在日常學習和工作中&#xff0c;我們常常會面臨需要處理大量信息的情況&#xff0c;這時候&#xff0c;一種叫做思維導圖的工具可能會成為你的救星。 不同于傳統的線性記錄方式&#xff0c;思維導圖以其獨特的視覺表現力和結構化的信息處理方式&#xff0c;使得人們能夠更加有…

Flutter學習(四)如何取消listview的越界效果

背景 在flutter的開發過程中&#xff0c;ListView是很常見的一個組件&#xff0c;但是&#xff0c;由于ListView的某些自帶的體驗&#xff0c;導致不太好的用戶體驗。例如ListView中&#xff0c;滑動到頂部或者底部的時候&#xff0c;再次滑動&#xff0c;會有越界的效果&…

同步和異步

同步和異步是處理任務時的兩種不同方式。 同步是指一個進程在執行某個請求的時候&#xff0c;如果該請求需要一段時間才能返回信息&#xff0c;那么這個進程會一直等待下去&#xff0c;直到收到返回信息才繼續執行下去。這種方式下&#xff0c;任務是按照順序一個一個執行的&am…

2023年亞太地區數學建模大賽 問題A

采果機器人的圖像識別技術 中國是世界上最大的蘋果生產國&#xff0c;年產量約為3500萬噸。與此同時&#xff0c;中國也是世界上最大的蘋果出口國&#xff0c;全球每兩個蘋果中就有一個&#xff0c;全球超過六分之一的蘋果出口自中國。中國提出了一帶一路倡議&#xff08;BRI&…

Cache學習(2):Cache結構 命中與缺失 多級Cache結構 直接映射緩存

1 Cache名詞解釋 命中&#xff08;hit&#xff09;&#xff1a; CPU要訪問的數據在Cache中有緩存缺失&#xff08;miss&#xff09;&#xff1a; CPU要訪問的數據在Cache中沒有緩存Cache Size&#xff1a;Cache的大小&#xff0c;代表Cache可以緩存最大數據的大小Cache Line&a…

快速在WIN11中本地部署chatGLM3

具體請看智譜倉庫github&#xff1a;GitHub - THUDM/ChatGLM3: ChatGLM3 series: Open Bilingual Chat LLMs | 開源雙語對話語言模型 或者Huggingface:https://huggingface.co/THUDM/chatglm3-6b 1. 利用Anaconda建立一個虛擬環境&#xff1a; conda create -n chatglm3 pyt…

2023全球數字貿易創新大賽-人工智能元宇宙-11-12,數據二十條,數字產業化和產業數字化

目錄 長沙千博信息技術有限公司-手語翻譯 數據二十條 數字產業化和產業數字化

java--static的應用知識:單例設計模式

1.什么是設計模式(Design pattern) ①一個問題通常有n中解法&#xff0c;其中肯定有一種解法最優的&#xff0c;這個最優的解法被人總結出來了&#xff0c;稱之為設計模式。 ②設計模式有20多種&#xff0c;對應20多種軟件開發中會遇到的問題。 2.單例設計模式 確保一個類只…

Linux安裝與配置Maven

案例中Linux版本為CentOS7.9&#xff0c;安裝目錄為 /root/software/ 1、使用 wget 命令從官網下載安裝包&#xff08;https://maven.apache.org/download.cgi&#xff09; wget https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz2、解壓…

搭建線上jvm監控

這里寫目錄標題 Springboot項目配置maven依賴application.properties添加監控JVM的配置類啟動springboot項目 Prometheus配置配置grafana Springboot項目配置 maven依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

mac mysql連接中斷重新啟動辦法

遇到如圖所示問題&#xff0c;可以用下面的命令重啟mysql服務 sudo /usr/local/mysql/support-files/mysql.server start

詳解分布式微服務架構

目錄 一、微服務簡介 1、分布式微服務架的誕生 2、微服務架構與SOA架構的區別 3、微服務框架引來的問題 二、服務通信 RESTful API&#xff1a; 消息隊列&#xff08;如RabbitMQ、Kafka&#xff09;&#xff1a; gRPC&#xff1a; GraphQL&#xff1a; Service Mesh&…

Vector - CANoe - Vector Hardware Manager以太網

前面的文章中有介紹過基于Network based mode和channel base mode的環境配置&#xff0c;不過我們都是使用比較舊的辦法&#xff0c;在我使用了一段時間Vector Hardware Manager配置之后發現這個更加好用結合之前的配置方法&#xff0c;使用起來也更加的靈活&#xff0c;今天就…

HTML的學習

知己知彼百戰不殆 打算學習一下javascript 所以先從基礎的html語言開始 其實就是頭部 和身體 頭部控制整個 html的語言 title等 <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"width…