-
Notifications
You must be signed in to change notification settings - Fork 26
/
1410.HTMLEntityParser.py
54 lines (47 loc) · 2.04 KB
/
1410.HTMLEntityParser.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
"""
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:
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 &
Constraints:
- 1 <= text.length <= 10^5
- The string may contain any possible characters out of all the 256
ASCII characters.
"""
#Difficulty: Medium
#154 / 154 test cases passed.
#Runtime: 108 ms
#Memory Usage: 14.4 MB
#Runtime: 108 ms, faster than 61.29% of Python3 online submissions for HTML Entity Parser.
#Memory Usage: 14.4 MB, less than 55.88% of Python3 online submissions for HTML Entity Parser.
import re
class Solution:
def entityParser(self, text: str) -> str:
entities = {""": "\"",
"'" : "'",
"&" : "&",
">" : ">",
"<" : "<",
"⁄" : "/"}
count = 0
for entity in entities.keys():
count += text.count(entity)
for entity, replace in entities.items():
if entity in text:
text = re.sub(entity, replace, text)
count -= 1
if not count:
break
return text