做导航网站赚钱,如何设计一个自己的网页,优化关键词的正确方法,博客网站建设方案书目录链接#xff1a;
力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目#xff1a;
https://github.com/September26/java-algorithms 原题链接#xff1a;力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台 描述#xff1a;
「HTML 实… 目录链接
力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目
https://github.com/September26/java-algorithms 原题链接力扣LeetCode官网 - 全球极客挚爱的技术成长平台 描述
「HTML 实体解析器」 是一种特殊的解析器它将 HTML 代码作为输入并用字符本身替换掉所有这些特殊的字符实体。
HTML 里这些特殊字符和它们对应的字符实体包括
双引号字符实体为 quot; 对应的字符是 。单引号字符实体为 apos; 对应的字符是 。与符号字符实体为 amp; 对应对的字符是 。大于号字符实体为 gt; 对应的字符是 。小于号字符实体为 lt; 对应的字符是 。斜线号字符实体为 frasl; 对应的字符是 / 。
给你输入字符串 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 amp;amp; x lt; y is always false
输出x y x y is always false示例 5
输入text leetcode.comfrasl;problemsetfrasl;all
输出leetcode.com/problemset/all提示
1 text.length 10^5字符串可能包含 256 个ASCII 字符中的任意字符。 解题思路
遍历字符串中的每一个字符如果字符串及其后面的字符可匹配则index匹配的长度。
否则index即可。 代码
class Solution {
public:vectorstring v1 {quot;, apos;, amp;, gt;, lt;, frasl;};vectorstring v2 {\, \, , , , /};pairstring, int isMatchReplace(string text, int index){for (int i 0; i v1.size(); i){if (text.compare(index, v1[i].size(), v1[i]) 0){int k v1[i].size();return make_pair(static_caststring(v2[i]), v1[i].size());}}return make_pairstring, int(text.substr(index, 1), 1);}string entityParser(string text){int index 0;ostringstream out;pairstring, int pair;while (index text.size()){pair isMatchReplace(text, index);out pair.first;index pair.second;}return out.str();}
};