1410HTML实体解析器 Posted on 2020-05-04 Words count in article: 282 | Reading time ≈ 1 1410HTML实体解析器下面是题目 下面是题目给出的代码123456class Solution {public:string entityParser(string text){ }}; 我最先想到的就是图存储 先把元素一一对应 然后遍历text字符串 如果正常,就直接加在答案上 如果出现了&,那么把从&开始到; 的字符串交给新的字符串 判断字符串是否在map中存储 如果发现了,那么改成对应的符号 否则保持原样,加在答案上 12345678910111213141516171819202122232425262728293031323334353637class Solution {public:string entityParser(string text){ string result=""; string temp=""; unordered_map<string,string>mp; mp["""]="\"";//有个转移符号,很骚 mp["'"]="'"; mp["&"]="&"; mp[">"]=">"; mp["<"]="<"; mp["⁄"]="/"; //通过一个flag判断从&开始到;结束中的字符串 bool flag = false; for(auto c:text) { if(!flag && c!='&') result += c ; //如果没到底,那么继续加 else if(flag && c!=';') temp += c; else if(c=='&') flag=true,temp+=c; //加到底了,进行一个判断 else if(c==';'&& flag) { temp += c; if (mp.find(temp) != mp.end()) result += mp[temp]; else result += temp; flag = false; temp = ""; } } return result;}}; -------------本文结束,感谢您的阅读------------- Post author: Jason Post link: https://jasonxqh.github.io/2020/05/04/1410HTML%E5%AE%9E%E4%BD%93%E8%A7%A3%E6%9E%90%E5%99%A8/ Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.