1410. HTML 实体解析器

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

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

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

给你输入字符串 text ,请你实现一个 HTML 实体解析器,返回解析器解析后的结果。

使用双指针遍历string

class Solution {
public:
    string entityParser(string s) {
        map<string, char> mp;
        mp["quot"] = '\"';
        mp["apos"] = '\'';
        mp["amp"] = '&';
        mp["gt"] = '>';
        mp["lt"] = '<';
        mp["frasl"] = '/';
        string res="";
        int i=0,n=s.size();
        while(i<n){
            if(s[i]!='&'){
                res+=s[i];
                i++;
            }else{
                int j=i;
                while(j<n&&s[j]!=';')j++;
                string t=s.substr(i+1,j-i-1);
                if(!mp[t]){
                    res+=s[i];
                    i++;
                }else{
                    res+=mp[t];
                    i=j+1;
                }
            }
        }
        return res;
    }

};
11-24 11:14