O algoritmo para tornar as palavras em negrito em HTML
Dado um conjunto de palavras-chave e uma string S, faça todas as aparições de todas as palavras-chave em negrito. Quaisquer letras entre e as tags ficam em negrito.
A string retornada deve usar o menor número possível de tags e, claro, as tags devem formar uma combinação válida.
Por exemplo, considerando que palavras = [“ab", “bc”] e S = “aabcd”, devemos retornar “a abc d”. Observe que retornar “a a bcd” usaria mais tags, então está incorreto.
Observação:
- palavras tem comprimento no intervalo [0, 50].
- words[i] tem comprimento no intervalo [1, 10].
- S tem comprimento no intervalo [0, 500].
- Todos os caracteres em words[i] e S são letras minúsculas.
Faça String Bold usando o algoritmo Bruteforce
Sem a exigência do mais curto, podemos colocar negrito em todas as ocorrências das palavras da lista. Como recebemos a string HTML original, podemos marcar em negrito para cada caractere que aparece nas palavras em negrito.
Portanto, com espaço O(N) e O(NM) onde N é o tamanho da string e M é o comprimento total da string em negrito, o algoritmo de força bruta C++ a seguir inserirá as tags HTML em negrito menos que satisfaçam o requisito.
Depois que os caracteres em negrito são marcados, redigitalizamos a string e procuramos os limites e inserimos as tags de acordo.