Почти в каждом языке есть встроенная функция, которая может разбивать строку в заданной позиции. Однако, как только в строке есть html-теги, встроенная функция не будет работать должным образом.
Ваша задача - написать программу или функцию, которая разбивает строку на n-й символ, но не считает символы тегов html и выведет действительный html. Программа должна сохранять форматирование. Пробелы за пределами HTML-тегов могут быть подсчитаны или не подсчитаны, как вы хотите, но должны быть сохранены. Однако вы можете заменить несколько последовательных пробелов в один пробел.
Входные данные:
- Струна
- позиция для разделения (на основе 0)
Они могут быть приняты в качестве аргументов программы или функции или могут быть прочитаны из стандартного ввода.
Вывод: Разделенная строка, которая может быть возвращена или записана в стандартный вывод.
Ввод будет действительным html, он не будет содержать никаких объектов (таких как
). Теги, которые открываются после ограничения количества символов, должны быть опущены в выводе (см. Последний пример).
Пример:
Входной сигнал: <i>test</i>
3
Выход:<i>tes</i>
Вход: <strong><i>more</i> <span style="color: red">complicated</span></strong>
7
Выход:<strong><i>more</i> <span style="color: red">co</span></strong>
Вход: no html
2
Выход:no
Вход: <b>no</b> <i>html root</i>
5
Выход:<b>no</b> <i>ht</i>
Вход: <b>no img</b><img src="test.png" />more text
6
Выход:<b>no img</b>
Вы можете использовать любой язык и стандартную библиотеку данного языка. Это код гольфа, самая короткая программа выигрывает. Повеселись!
<
и >
вместо <>
, так что нет ( <
или >
не будет присутствовать либо).
<i>ab</i><b>cd</b> 1
?
<i>a</i>
?
<i>a</i><b></b>
(что имеет смысл, если вы считаете, что это b
также может быть div
или img
.)