LeetCode周赛第184场 5382. HTML 实体解析器

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

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

双引号:字符实体为 " ,对应的字符是 " 。
单引号:字符实体为 ' ,对应的字符是 ' 。
与符号:字符实体为 & ,对应对的字符是 & 。
大于号:字符实体为 > ,对应的字符是 > 。
小于号:字符实体为 < ,对应的字符是 < 。
斜线号:字符实体为 ⁄ ,对应的字符是 / 。

给你输入字符串 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 && 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 字符中的任意字符。
class Solution {
public:
    string entityParser(string text) {
        string a;
        for(int i=0;i<text.size();i++)
        {
            if(text[i]=='&')
            {
                if(text[i+1]=='q'&&text[i+2]=='u'&&text[i+3]=='o'&&text[i+4]=='t'&&text[i+5]==';')
                {
                    a+="\"";
                    i+=5;
                    continue;
                }
                if(text[i+1]=='a'&&text[i+2]=='p'&&text[i+3]=='o'&&text[i+4]=='s'&&text[i+5]==';')
                 {
                    a+="'";
                    i+=5;
                    continue;
                }
                 if(text[i+1]=='a'&&text[i+2]=='m'&&text[i+3]=='p'&&text[i+4]==';')
                    
                 {
                     a+="&";
                     i+=4;
                    continue;
                }
                 if(text[i+1]=='g'&&text[i+2]=='t'&&text[i+3]==';')
                {
                    a+=">";
                     i+=3;
                    continue;
                }
                if(text[i+1]=='l'&&text[i+2]=='t'&&text[i+3]==';')
                  
                {
                    a+="<";
                    i+=3;
                    continue;
                }
                 if(text[i+1]=='f'&&text[i+2]=='r'&&text[i+3]=='a'&&text[i+4]=='s'&&text[i+5]=='l'&&text[i+6]==';')
                   
                {
                     a+="/";
                     i+=6;
                    continue;
                }
            }
            a+=text[i];
        }
        return a;
    }
};

你可能感兴趣的:(LeetCode,leetcode,html,字符串)