怎样找回网站备案密码,用表格做网站教程,吕梁做网站的公司,淮安经济技术开发区建设局网站提供一串字符串#xff0c;根据给定的规则#xff0c;去解析该字符串#xff0c;并返回结果 简而言之#xff0c;就是根据指定的格式#xff0c;替换内容 HTML 里这些特殊字符和它们对应的字符实体包括#xff1a; 双引号#xff1a;字符实体为 #xff0c;对应… 提供一串字符串根据给定的规则去解析该字符串并返回结果 简而言之就是根据指定的格式替换内容 HTML 里这些特殊字符和它们对应的字符实体包括 双引号字符实体为 对应的字符是 。 单引号字符实体为 ’ 对应的字符是 ’ 。 与符号字符实体为 对应对的字符是 。 大于号字符实体为 对应的字符是 。 小于号字符实体为 对应的字符是 。 斜线号字符实体为 ⁄ 对应的字符是 / 。 给你输入字符串 text 请你实现一个 HTML 实体解析器返回解析器解析后的结果。 简单讲一下思路结合替换的原字符串的规律第一个字符为 最后一个字符为 用两个“指针去做标记”分别是 下标 和 ; 下标 当没有比配i 、j 都移动然后 返回 ans text[i]; 当匹配上了直接把储存的对应结果加到 ans 上然后 i j 1;进行下一次匹配 class Solution {
public:string entityParser(string text) {std::unordered_mapstd::string, std::string flags;flags[quot;] \;flags[apos;] \;flags[amp;] ;flags[gt;] ;flags[lt;] ;flags[frasl;] /;std::string ans;int i 0, j 0, n text.size();while(i n){if(text[i] ! ){ans text[i];i;j;}else{j i;while(j n text[j] ! ;){j;}std::string tem text.substr(i, j - i 1);if(flags.find(tem) flags.end()){ans text[i];i;j;continue;}ans flags[tem];i j 1;}}return ans;}
};