#1410
Medium Algorithms Html entity parser
Hash Table String
50.3% acceptance
Mar 1, 2026
214
332
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.
Solution
Rust
Time O(n)
Space O(n)
impl Solution {
pub fn entity_parser(text: String) -> String {
let b = text.as_bytes();
let n = b.len();
let mut result = Vec::with_capacity(n);
let mut i = 0;
while i < n {
if b[i] == b'&' {
let rest = &b[i..];
if rest.starts_with(b"⁄") { result.push(b'/'); i += 7; }
else if rest.starts_with(b""") { result.push(b'"'); i += 6; }
else if rest.starts_with(b"'") { result.push(b'\''); i += 6; }
else if rest.starts_with(b"&") { result.push(b'&'); i += 5; }
else if rest.starts_with(b">") { result.push(b'>'); i += 4; }
else if rest.starts_with(b"<") { result.push(b'<'); i += 4; }
else { result.push(b[i]); i += 1; }
} else {
result.push(b[i]);
i += 1;
}
}
String::from_utf8(result).unwrap()
}
}