Quase todos os idiomas possuem uma função integrada que pode dividir uma string em uma determinada posição. No entanto, assim que você tiver tags html na string, a função interna não funcionará corretamente.
Sua tarefa é escrever um programa ou função que divida uma string no enésimo caractere, mas não conta os caracteres das tags html e produzirá um html válido. O programa deve manter a formatação. Os espaços fora das tags html podem ser contados ou não, conforme desejado, mas devem ser preservados. No entanto, você pode trocar vários espaços consecutivos em um único espaço.
Entrada:
- a corda
- a posição para dividir em (com base em 0)
Eles podem ser tomados como argumentos de programa ou função ou podem ser lidos a partir da entrada padrão.
Saída: a cadeia de caracteres dividida que pode ser retornada ou gravada na saída padrão.
A entrada será um html válido, não conterá nenhuma entidade (como ). As tags que são abertas após o limite de caracteres devem ser omitidas da saída (consulte o último exemplo).
Exemplo:
Entrada
:, <i>test</i>3
Saída:<i>tes</i>
Entrada
:, <strong><i>more</i> <span style="color: red">complicated</span></strong>7
Saída:<strong><i>more</i> <span style="color: red">co</span></strong>
Entrada
:, no html2
Saída:no
Entrada
:, <b>no</b> <i>html root</i>5
Saída:<b>no</b> <i>ht</i>
Entrada
:, <b>no img</b><img src="test.png" />more text6
Saída:<b>no img</b>
Você pode usar qualquer idioma e a biblioteca padrão do idioma especificado. Este é o código de golfe, o programa mais curto vence. Diverta-se!
<e, em >vez de <>, então não ( <ou >não estará presente também).
<i>ab</i><b>cd</b> 1?
<i>a</i>?
<i>a</i><b></b>(que faz sentido se você considerar que btambém poderia ser divou img.)