forked from fishercoder1534/Leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_1410.java
77 lines (76 loc) · 3.12 KB
/
_1410.java
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package com.fishercoder.solutions;
/**
* 1410. HTML Entity Parser
*
* 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.
* */
public class _1410 {
public static class Solution1 {
public String entityParser(String text) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < text.length(); i++) {
if (text.charAt(i) != '&') {
sb.append(text.charAt(i));
} else {
if (i + 7 <= text.length() && text.substring(i, i + 7).equals("⁄")) {
sb.append("/");
i += 6;
} else if (i + 6 <= text.length() && text.substring(i, i + 6).equals(""")) {
sb.append("\"");
i += 5;
} else if (i + 6 <= text.length() && text.substring(i, i + 6).equals("'")) {
sb.append("'");
i += 5;
} else if (i + 5 <= text.length() && text.substring(i, i + 5).equals("&")) {
sb.append("&");
i += 4;
} else if (i + 4 <= text.length() && text.substring(i, i + 4).equals(">")) {
sb.append(">");
i += 3;
} else if (i + 4 <= text.length() && text.substring(i, i + 4).equals("<")) {
sb.append("<");
i += 3;
} else {
sb.append(text.charAt(i));
}
}
}
return sb.toString();
}
}
}