Given a set of keywords
words
and a string
S
, make all appearances of all keywords in
S
bold. Any letters between
<b>
and
</b>
tags become bold.
The returned string should use the least number of tags possible, and of course the tags should form a valid combination.
For example, given that
words = ["ab", "bc"]
and
S = "aabcd"
, we should return
"a<b>abc</b>d"
. Note that returning
"a<b>a<b>b</b>c</b>d"
would use more tags, so it is incorrect.
Note:
words
has length in range
[0, 50]
.
words[i]
has length in range
[1, 10]
.
S
has length in range
[0, 500]
.
words[i]
and
S
are lowercase letters.