题目描述:
给一个字符串 s 和一个字符串列表 dict ,你需要将在字符串列表中出现过的 s 的子串添加加粗闭合标签 。如果两个子串有重叠部分,你需要把它们一起用一个闭合标签包围起来。同理,如果两个子字符串连续被加粗,那么你也需要把它们合起来用一个加粗标签包围。

样例 1:
输入:
s = “abcxyz123”
dict = [“abc”,“123”]
输出:
abcxyz123

样例 2:
输入:
s = “aaabbcc”
dict = [“aaa”,“aab”,“bc”]
输出:
aaabbcc”

注意:
给定的 dict 中不会有重复的字符串,且字符串数目不会超过 100 。
输入中的所有字符串长度都在范围 [1, 1000] 内。

方法1:
主要思路:
(1)先将字典中的各个单词在字符串中的可能出现的位置进行标识;
(2)然后根据标识的位置,在字符串中出入标签;

class Solution {public:string addBoldTag(string s, vector<string>& dict) {//标识出现过的单词vector<bool> sign(s.size(),false);//将字典中的各个单词在字符串中标识for(string& word:dict){//当前要处理的单词//字符串中的各个位置int pos=0;//遍历字符串的结尾int end_pos=s.size()-word.size()+1;while(pos<end_pos){if(s[pos]==word[0]){int k=0;//判断当前单词是否在字符串的当前位置while(k<word.size()){if(s[pos+k]!=word[k]){break;}++k;}//若在,则对单词进行标识if(k==word.size()){k=0;while(k<word.size()){sign[pos+k]=true;++k;}}}//字符串中的下一个单词++pos;}}//根据标识,插入标签int pos=0;string res;while(pos<s.size()){//若此位置开始,有单词出现if(sign[pos]){res+="<b>";//插入标签前面部分//压入出现过单词的部分while(pos<s.size()&&sign[pos]){res.push_back(s[pos]);++pos;}//插入标签的后面部分res+="</b>";}else{//将非出现单词的部分直接压入结果中res.push_back(s[pos]);++pos;}}return res;}
};

616 给字符串添加加粗标签相关推荐

  1. LeetCode 616. 给字符串添加加粗标签(Trie树)

    文章目录 1. 题目 2. 解题 1. 题目 给一个字符串 s 和一个字符串列表 dict ,你需要将在字符串列表中出现过的 s 的子串添加加粗闭合标签 <b> 和 </b> ...

  2. html中b标签去加粗,html中b加粗标签的详细介绍

    html作为网页最基础的语言是每一个站长必学的语言,今天我们就来了解字体文本标签 b,/b标签的用法及其语义. 字体文本标签讲解标签 字体标签定义字体的显示效果,有些标签它有独自的语义. 标签 感谢您 ...

  3. HTML <b>加粗与<strong>加粗标签区别

    相同点:视觉效果加粗 不同点:          b标签:本身不具备HTML语义.         WEB标准提倡样式与内容分离,所以纯粹为了达到加粗而使用b标签,已经不建议这样做.       st ...

  4. html字体加粗标签与写法

    在html中字体加粗的标签为<b>标签,当我们使用了该标签,字体就会加粗,一般用于注明重要信息,强调文字上面写法如下 字体加粗:<b>这里的字体就会加粗</b> 效 ...

  5. LeetCode 758. 字符串中的加粗单词(Trie树)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个关键词集合 words 和一个字符串 S,将所有 S 中出现的关键词加粗.所有在标签 <b> 和 </b> 中的字母都会加 ...

  6. 2019-7-22 [HTML] 基本结构 DOCTYPE声明 标签:[title meta 标题 段落 换行 加粗 斜体 下划线] 注释 特殊字符 img标签 a标签

    文章目录 0.HTML网页技术(基础) 1 HTML概述 1.1 什么是HTML? 1.2 Hello,HTML! 2 HBuilder的安装与使用 2.1 安装HBuilder 2.2 使创建项目 ...

  7. 产生粗体字的html标签,html字体加粗用css设置文字粗体样式

    html如何加粗文字,HTML加粗标签元素有哪些?CSS字体加粗又怎么来实现?粗体代码是什么? 综合以上问题,可以使用CSS样式和HTML标签两种方法来实现,在实际布局时候根据需要来选择文字字体加粗方 ...

  8. html如何添加web字体,html中字体如何实现加粗(方法介绍)_WEB前端开发,html,字体加粗...

    PS五角星形状使用方法?_WEB前端开发 PS五角星形状使用方法:首先点击左侧工具栏中的"矩形工具"子选项中的"多边形工具":然后点击上方工具栏中的" ...

  9. 加粗、倾斜、下划线、删除线标签

    加粗.倾斜.下划线.删除线标签 源代码 <strong>                 <strong>和<b>为加粗标签 <b> <em> ...

最新文章

  1. 【SSH项目实战】国税协同平台-26.分页功能编写
  2. TCP/IP 协议簇 端口 三次握手 四次挥手 11种状态集
  3. OpenCV检测ArUco板
  4. 在Rstudio中点一点就出来了一个R包
  5. cmd进入控制Mysql出现乱码的问题
  6. 计算机各种硬盘的规格,硬盘规格参数表大全
  7. 计算机主机制作过程,计算机主机箱的制作方法
  8. 把计算机怎么连接手机的网络助手在哪里,手机连接电脑上网,详细教您手机如何连接电脑上网...
  9. 【数学建模】基于matlab计划生育政策调整对人口数量、结构及其影响的研究【含Matlab源码 749期】
  10. vmplayer虚拟机中如何找到网络配置的窗口
  11. linux hotplug 机制,佐须之男的博客- 跟着佐大学Lede/OpenWrt开发入门培训班讲义-18 OpenWrt hotplug 机制分析...
  12. JAVA扫码点餐(2)-项目过程
  13. cpu_relax()函数的意义
  14. 美国亚马逊编辑推荐的一生必读书单100本
  15. 考研英一----2006年真题知识点总结
  16. windows下bat脚本实现定时删除指定文件夹下的文件和文件夹
  17. 数据库原理之候选码的判断方法
  18. 诺基亚Lumia630开始预订
  19. Fast-Planner代码阅读-1. Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight
  20. java的while、do while循环和案例

热门文章

  1. GitHub学生认证示范
  2. (翻译)文章列表(Article List)
  3. window下测试ntp服务器是否可用
  4. BottomNavigationView+Navigation 添加底部导航菜单切换时的fragment过渡动画animation
  5. 单元测试总结反思_英语单元测试教学反思范文
  6. 安装Visio 2013与原本的office冲突的最终解决方案
  7. 怎样选择步进电机和驱动器,计算方式
  8. 多屏互动重现双十一“大数据广告诱惑”
  9. Unity3D键盘输入被输入法屏蔽
  10. 这辈子会遇见谁,早已命中注定