Ctrl K

Раскодировать спецсимволы разметки

Средняя
В разметке некоторые символы записываются кодами. Нас интересуют шесть кодов: | Код | Символ | |---|---| | &quot; | " | | &apos; | ' | | &amp; | & | | &gt; | > | | &lt; | < | | &frasl; | / | Дана строка markup. Замените в ней каждый из этих кодов на соответствующий символ и верните результат. Всё остальное, включая незнакомые коды вроде &nbsp;, остаётся без изменений. Строка просматривается слева направо один раз: символы, появившиеся после замены, заново не разбираются. Например, &amp;gt; превращается в &gt;, а не в >.
Пример 1
markup="5 &lt; 7 &amp;&amp; 7 &gt; 5" → '5 < 7 && 7 > 5'

&lt; становится <, каждый &amp; — &, &gt; — >.

Пример 2
markup="&amp;lt; stays &lt;" → '&lt; stays <'

Замена делается за один проход: &amp; превращается в &, а получившийся &lt; повторно не раскрывается.

Пример 3
markup="path&frasl;to &unknown; &quotx" → 'path/to &unknown; &quotx'

&frasl; — это /. &unknown; нет в таблице, а у &quotx нет точки с запятой, поэтому оба остаются как есть.

Ограничения
  • 1 ≤ len(markup) ≤ 10⁵
  • markup может содержать любые из 256 символов ASCII
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный фрагмент без повторов СредняяЧисло римскими цифрами СредняяСлова с кнопочного телефона СредняяРазложить анаграммы по группам СредняяРазбиение на слова из словаря Средняя
загружаем Python…
Вход
markup="5 &lt; 7 &amp;&amp; 7 &gt; 5"
Ожидается
'5 < 7 && 7 > 5'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 8 тестов на сервере, включая скрытые.