#P2271. HTML
HTML
描述
如果你曾尝试在苹果电脑(Macintosh)上读取一个HTML文档,你就会知道如果没有安装网景(Netscape)浏览器,这是多么困难。
那么,谁会忘记安装一个HTML浏览器呢?这其实很容易,因为大多数时候在苹果电脑上你并不需要它,因为有一个苹果电脑原生的Acrobat Reader(PDF阅读器)。但如果你真的需要一个浏览器,你会怎么做呢?
你的任务是编写一个小型的HTML浏览器。它只应显示输入文件的内容,并且只识别HTML命令(标签):<br>
,它表示换行;<hr>
,它表示水平横线。然后你应该把所有的制表符、空格和换行符都当作一个空格来处理,并且显示处理后的文本,每行不超过个字符。
输入
输入是你应该显示的一段文本。这段文本由单词和HTML标签组成,单词和标签之间由一个或多个空格、制表符或换行符分隔。
一个单词是由字母、数字和标点符号组成的序列。例如,“abc,123”是一个单词,但“abc, 123”是两个单词,即“abc,”和“123”。一个单词的长度总是小于个字符,并且不包含任何“<”或“>”字符。所有的HTML标签要么是<br>
,要么是<hr>
。
输出
你应该按照以下规则显示处理后的文本:
- 如果你在输入中读取到一个单词,并且当前行的长度不会超过个字符,就打印这个单词;否则,将这个单词打印在新的一行。
- 如果你在输入中读取到
<br>
,就开始新的一行。 - 如果你在输入中读取到
<hr>
,除非你已经处于一行的开头,否则开始新的一行,显示个字符的“-”,然后再开始新的一行。
最后一行以一个换行符结束。
输入数据 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 年