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 html
2
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 text
6
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 b
também poderia ser div
ou img
.)