616 Add Bold Tag in String
Input:
s = "abcxyz123"
dict = ["abc","123"]
Output:
"<b>abc</b>xyz<b>123</b>"Input:
s = "aaabbcc"
dict = ["aaa","aab","bc"]
Output:
"<b>aaabbc</b>c"Last updated
Input:
s = "abcxyz123"
dict = ["abc","123"]
Output:
"<b>abc</b>xyz<b>123</b>"Input:
s = "aaabbcc"
dict = ["aaa","aab","bc"]
Output:
"<b>aaabbc</b>c"Last updated
class Solution:
def addBoldTag(self, s, dict):
"""
:type s: str
:type dict: List[str]
:rtype: str
"""
intervals = [False] * len(s)
for i in range(0, len(s)):
for word in dict:
if s.startswith(word, i):
intervals[i:i + len(word)] = [True] * len(word)
final_str = []
bold_active = False
for i, bold in enumerate(intervals):
# start of bold
if bold and not bold_active:
final_str.append('<b>')
bold_active = True
# end of bold
elif not bold and bold_active:
final_str.append('</b>')
bold_active = False
final_str.append(s[i])
if intervals[-1]:
final_str.append('</b>')
return ''.join(final_str)
obj = Solution()
print(obj.addBoldTag("abcxyz123", ["abc", "123"])) # "<b>abc</b>xyz<b>123</b>"
print(obj.addBoldTag("aaabbcc", ["aaa","aab","bc"])) # "<b>aaabbc</b>c"