0
点赞
收藏
分享

微信扫一扫

[leetcode] 1410. HTML Entity Parser


Description

HTML entity parser is the parser that takes HTML code as input and replace all the entities of the special characters by the characters itself.

The special characters and their entities for HTML are:

  • Quotation Mark: the entity is " and symbol character is ".
  • Single Quote Mark: the entity is ’ and symbol character is '.
  • Ampersand: the entity is & and symbol character is &.
  • Greater Than Sign: the entity is > and symbol character is >.
  • Less Than Sign: the entity is < and symbol character is <.
  • Slash: the entity is ⁄ and symbol character is /.

Given the input text string to the HTML parser, you have to implement the entity parser.

Return the text after replacing the entities by the special characters.

Example 1:

Input: text = "& is an HTML entity but &ambassador; is not."
Output: "& is an HTML entity but &ambassador; is not."
Explanation: The parser will replace the & entity by &

Example 2:

Input: text = "and I quote: "...""
Output: "and I quote: \"...\""

Example 3:

Input: text = "Stay home! Practice on Leetcode :)"
Output: "Stay home! Practice on Leetcode :)"

Example 4:

Input: text = "x > y && x < y is always false"
Output: "x > y && x < y is always false"

Example 5:

Input: text = "leetcode.com⁄problemset⁄all"
Output: "leetcode.com/problemset/all"

Constraints:

  • 1 <= text.length <= 10^5
  • The string may contain any possible characters out of all the 256 ASCII characters.

分析

题目的意思是:实现一个HTML解析器,即替换字符串中字典给定的字符。这道题也可以用双指针法,l和r初始化为-1,当碰见’&‘的时候用l记录左边界,当碰见’;'的时候用h记录右边界,当左边界和右边界都存在,就把字符串取出来判断是否在字典里面,在直接替换,否则还是保持原来的字符串,同时l和r要置为-1,方便记录下一个左右边界。

代码

class Solution:
def entityParser(self, text: str) -> str:
res=''
d={'"':'"',
''':"'",
"&":'&',
'>':'>',
'<':'<',
'⁄':'/'}
n=len(text)
l=-1
h=-1
for i in range(n):
if(text[i]=='&'):
l=i
if(text[i]==';'):
h=i
if(l==-1):
res+=text[i]
if(l!=-1 and h!=-1):
k=text[l:h+1]
if(k in d):
res+=d[k]
else:
res+=k
l=-1
h=-1
return res

参考文献

​​[LeetCode] A Simple Python 3 Solution!( Explained)​​


举报

相关推荐

0 条评论