#P2271. HTML

    ID: 1272 传统题 2000ms 256MiB 尝试: 4 已通过: 1 难度: 10 上传者: 标签>Ulm Local 1999字符串处理HTML解析文本格式化

HTML

描述

如果你曾尝试在苹果电脑(Macintosh)上读取一个HTML文档,你就会知道如果没有安装网景(Netscape)浏览器,这是多么困难。

那么,谁会忘记安装一个HTML浏览器呢?这其实很容易,因为大多数时候在苹果电脑上你并不需要它,因为有一个苹果电脑原生的Acrobat Reader(PDF阅读器)。但如果你真的需要一个浏览器,你会怎么做呢?

你的任务是编写一个小型的HTML浏览器。它只应显示输入文件的内容,并且只识别HTML命令(标签):<br>,它表示换行;<hr>,它表示水平横线。然后你应该把所有的制表符、空格和换行符都当作一个空格来处理,并且显示处理后的文本,每行不超过8080个字符。

输入

输入是你应该显示的一段文本。这段文本由单词和HTML标签组成,单词和标签之间由一个或多个空格、制表符或换行符分隔。

一个单词是由字母、数字和标点符号组成的序列。例如,“abc,123”是一个单词,但“abc, 123”是两个单词,即“abc,”和“123”。一个单词的长度总是小于8181个字符,并且不包含任何“<”或“>”字符。所有的HTML标签要么是<br>,要么是<hr>

输出

你应该按照以下规则显示处理后的文本:

  1. 如果你在输入中读取到一个单词,并且当前行的长度不会超过8080个字符,就打印这个单词;否则,将这个单词打印在新的一行。
  2. 如果你在输入中读取到<br>,就开始新的一行。
  3. 如果你在输入中读取到<hr>,除非你已经处于一行的开头,否则开始新的一行,显示8080个字符的“-”,然后再开始新的一行。

最后一行以一个换行符结束。

输入数据 1

Hallo, dies ist eine 
ziemlich lange Zeile, die in Html
aber nicht umgebrochen wird.
<br>
Zwei <br> <br> produzieren zwei Newlines. 
Es gibt auch noch das tag <hr> was einen Trenner darstellt.
Zwei <hr> <hr> produzieren zwei Horizontal Rulers.
Achtung       mehrere Leerzeichen irritieren

Html genauso wenig wie


mehrere Leerzeilen.

输出数据 1

Hallo, dies ist eine ziemlich lange Zeile, die in Html aber nicht umgebrochen
wird.
Zwei

produzieren zwei Newlines. Es gibt auch noch das tag
--------------------------------------------------------------------------------
was einen Trenner darstellt. Zwei
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
produzieren zwei Horizontal Rulers. Achtung mehrere Leerzeichen irritieren Html
genauso wenig wie mehrere Leerzeilen.

来源

乌尔姆本地赛 1999 年