【打卡】字符串中的加粗单词

描述
给定一组关键字“words”和一个字符串“S”,将所有关键字以S粗体显示。标记之间的任何字母都将加粗。
返回的字符串应该使用尽可能少的标签,当然这些标签应该组成一个有效的组合。

words 长度在[0, 50].
words[i] 长度在 [1, 10].
S 长度在 [0, 500].
words[i] 和 S 由小写字母组成

样例
样例 1:

输入:
["ab", "bc"]
"aabcd"
输出:
"a<b>abc</b>d"

解释:
 "a<b>a<b>b</b>c</b>d" 用了更多的标签,所以不对

样例 2:

输入:
["bcccaeb","b","eedcbda","aeebebebd","ccd","eabbbdcde","deaaea","aea","accebbb","d"]
"ceaaabbbedabbecbcced"
输出:
"ceaaa<b>bbb</b>e<b>d</b>a<b>bb</b>ec<b>b</b>cce<b>d</b>"
from typing import (
    List,
)

class Solution:
    """
    @param words: the words
    @param s: the string
    @return: the string with least number of tags
    """
    def bold_words(self, words: List[str], s: str) -> str:
        # Write your code here
        bold = set()
        for w in words:
            i = s.find(w, 0)
            while i >= 0:
                bold.update(range(i, i + len(w)))
                i = s.find(w, i+1)
        
        res = ''
        for i in range(len(s)):
            if i in bold and i-1 not in bold:
                res += '<b>'
            res += s[i]
            if i in bold and i+1 not in bold:
                res += '</b>'

        return res
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果在 VSCode 打开的文件文乱码,可能是由于文件的编码方式不正确导致的。你可以尝试以下几种方法来解决这个问题: 1. 更改文件编码方式:在 VSCode 打开文件后,点击右下角的编码方式(通常是 "UTF-8"),然后选择正确的编码方式(如 "GB2312" 或 "UTF-8 with BOM")。如果你不确定文件的正确编码方式,可以尝试逐个更改并查看哪个编码方式能够正确显示文字符。 2. 手动设置文件编码:在 VSCode 打开文件后,点击菜单栏的 "文件(File)",选择 "首选项(Preferences)",然后选择 "设置(Settings)"。在设置面板搜索 "files.encoding",然后将其设置为正确的编码方式(如 "gbk" 或 "utf8")。 3. 重新保存文件:在 VSCode 打开文件后,点击菜单栏的 "文件(File)",选择 "另存为( Save As)",然后选择正确的编码方式保存文件。确保在保存时选择了正确的编码方式。 4. 检查系统区域设置:有时候乱码问题可能与系统的区域设置相关。确保你的系统区域设置与文件所使用的编码方式兼容。例如,如果你的文件使用 GBK 编码方式,但系统区域设置使用 UTF-8,则可能导致乱码问题。 如果上述方法都无法解决问题,那么可能是文件本身存在其他问题,或者文件内容并非纯文本。在这种情况下,你可以尝试使用其他文本编辑器查看文件,或者检查文件内容是否正确。 希望这些方法能够帮助你解决文乱码问题!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dataloading...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值