当前位置: 首页 > news >正文

360怎么做网站百度在线提问

360怎么做网站,百度在线提问,为什么要网站建设,电子商务平台网站模板Every day a Leetcode 题目来源:1410. HTML 实体解析器 解法1:模拟 遍历字符串 text,每次遇到 ’&‘,就判断以下情况: 双引号:字符实体为 " ,对应的字符是 " 。单引号&a…

Every day a Leetcode

题目来源:1410. HTML 实体解析器

解法1:模拟

遍历字符串 text,每次遇到 ’&‘,就判断以下情况:

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

如果是上述情况,将转换结果插入结果;如果都不是,则直接添加到结果里。

代码:

/** @lc app=leetcode.cn id=1410 lang=cpp** [1410] HTML 实体解析器*/// @lc code=start
class Solution
{
public:string entityParser(string text){string result;int i = 0;while (i < text.size()){if (text[i] == '&'){if (text.substr(i, 4) == "&gt;"){result += '>';i += 4;}else if (text.substr(i, 4) == "&lt;"){result += '<';i += 4;}else if (text.substr(i, 5) == "&amp;"){result += '&';i += 5;}else if (text.substr(i, 6) == "&quot;"){result += '"';i += 6;}else if (text.substr(i, 6) == "&apos;"){result += '\'';i += 6;}else if (text.substr(i, 7) == "&frasl;"){result += '/';i += 7;}elseresult += text[i++];}elseresult += text[i++];}return result;}
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中 n 是字符串 text 的长度。

空间复杂度:O(1)。

解法2:模拟

本题要求把字符串中所有的「字符实体」替换成对应的字符。

「字符实体」都是由 & 开头的,所以我们只需要遍历一遍字符串,用一个变量 pos\textit{pos}pos 表示当前处理的位置,如果 text[pos]=‘&’,就在这个位置进行探测。假设一个「字符实体」为 e,对应的字符为 c,那么可以通过判断 pos 位置开始,长度和 e 相同的子串是否和 e 相等,如果相等就可以替换。

代码:

class Solution {
public:using EntityChar = pair <string, char>;vector <EntityChar> entityList;string entityParser(string text) {entityList = vector({(EntityChar){"&quot;", '"'},(EntityChar){"&apos;", '\''},(EntityChar){"&amp;", '&'},(EntityChar){"&gt;", '>'},(EntityChar){"&lt;", '<'},(EntityChar){"&frasl;", '/'}});string r = "";for (int pos = 0; pos < text.size(); ) {bool isEntity = false;if (text[pos] == '&') {for (const auto &[e, c]: entityList) {if (text.substr(pos, e.size()) == e) {r.push_back(c);pos += e.size();isEntity = true;break;}}}if (!isEntity) {r.push_back(text[pos++]);continue;}}return r;}
};

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(k×n),其中 n 是字符串 text 的长度。考虑最坏情况,每个位置都是 &,那么每个位置都要进行 6 次探测,探测的总时间代价和「实体字符」的总长度 k 相关,这里 k=6+6+5+4+4+7=32。

空间复杂度:O(k),这里用了 entityList 作为辅助变量,字符总数为 k+6,故渐进空间复杂度为 O(k+6)=O(k)。

http://www.hyszgw.com/news/23951/

相关文章:

  • 网站建设实训心得phpseo关键词优化推广哪家好
  • 政府网站建设常态化电商数据查询平台
  • 合肥建设云seoer是什么意思
  • 触屏版手机网站站长之家seo综合
  • 软件开发工程师级别狼雨的seo教程
  • 如何做英文网站的中文网网站建设制作过程
  • 网站结构优点网络营销课程有哪些
  • 身份证被用户做网站备案网站软件开发
  • 手机怎样使用域名访问网站seo推广主要做什么的
  • 江苏建设监理网站安徽网站开发哪家好
  • 网站关键词优化合同云浮seo
  • html5手机移动app网站制作教程在线收录
  • 判断网站模板版本竞价托管公司
  • 美容茌哪个网站做宣传好网赌怎么推广拉客户
  • 广州网站制作哪家强国际新闻网
  • 郑州网络hyein seo是什么牌子
  • 湖南平台网站建设公司推广自己的网站
  • 自己做外贸网站能接到单吗鱼头seo软件
  • 精准营销数据上海做网络口碑优化的公司
  • ip怎么做网站seo网络培训学校
  • wordpress 企业主题餐饮海淀区seo搜索引擎
  • 做程序开发的网站百度推广优化怎么做
  • 企业专业网站建设的必要性互联网线上推广
  • 网站建设实验报告什么是互联网营销师
  • 如何利用视频网站做数字营销推广广州百度推广排名优化
  • 怎么做整人点不完的网站视频百度推广seo优化
  • 网站怎么建苏州关键词优化怎样
  • wordpress 站群杭州关键词排名提升
  • 杭州做商业地产开什么网站好西安网站关键词优化费用
  • 平面电商设计是什么百度网站排名关键词整站优化