前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTML|实体解析器(题解)

HTML|实体解析器(题解)

作者头像
算法与编程之美
发布2020-04-20 13:17:41
1.7K0
发布2020-04-20 13:17:41
举报

题目描述

该题为力扣184周第三题,题目如下:

HTML 实体解析器「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体。

HTML 里这些特殊字符和它们对应的字符实体包括:

双引号:字符实体为 " ,对应的字符是 " 。

单引号:字符实体为 ' ,对应的字符是 ' 。

与符号:字符实体为 & ,对应对的字符是 & 。

大于号:字符实体为 > ,对应的字符是 > 。

小于号:字符实体为 %lt; ,对应的字符是 < 。

斜线号:字符实体为 &frasl; ,对应的字符是 / 。

给你输入字符串 text ,请你实现一个 HTML 实体解析器,返回解析器解析后的结果。

示例 1:

输入:text = "&amp; is an HTML entity but &ambassador; is not."

输出:"& is an HTML entity but &ambassador; is not."

解释:解析器把字符实体 &amp; 用 & 替换

示例 2:

输入:text = "and I quote: &quot;...&quot;"

输出:"and I quote: \"...\""

示例 3:

输入:text = "Stay home! Practice on Leetcode :)"

输出:"Stay home! Practice on Leetcode :)"

示例 4:

输入:text = "x &gt; y &amp;&amp; x %lt;y is always false"

输出:"x > y && x < y is always false"

示例 5:

输入:text = "leetcode.com&frasl;problemset&frasl;all"

输出:"leetcode.com/problemset/all"

提示:

1 <= text.length <= 10^5

字符串可能包含 256 个ASCII 字符中的任意字符。

解题思路及步骤

拿到这道题首先我想到的是用题目给出的字符实体所对应的值去替换相应的HTML字符;

第一步:首先创建一个字典,将字符实体与其所对应的值加入字典中;

第二步:遍历字典的实体字符;

第三步:替换输入字符串中的字符实体。

解题代码

class Solution: def entityParser(self, text: str) -> str: dic={'&quot;':'"','&apos;':"'",'&gt;':'>','&lt;':'<','&frasl;':'/','&amp;':'&'}#创建字典 for i in dic:#遍历字典 text=text.replace(i,dic[i])#替换 return text

总结

该博客主要为大家带来了该题的解题思路步骤,因为思路简单易懂,代码简洁,时间复杂度与内存消耗均击败100%,我也在力扣平台发布了该解题步骤,希望大家有所收获。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档