您的位置:首页 > Web前端 > HTML

HDU 1088 Write a simple HTML Browser(水题)

2011-11-01 00:50 369 查看

Write a simple HTML Browser

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3398 Accepted Submission(s): 890


[align=left]Problem Description[/align]
If you ever tried to read a html document on a Macintosh, you know how hard it is if no Netscape is installed.
Now, who can forget to install a HTML browser? This is very easy because most of the times you don't need one on a MAC because there is a Acrobate Reader which is native to MAC. But if you ever need one, what do you do?
Your task is to write a small html-browser. It should only display the content of the input-file and knows only the html commands (tags) <br> which is a linebreak and <hr> which is a horizontal ruler. Then you should treat all tabulators, spaces and newlines as one space and display the resulting text with no more than 80 characters on a line.

[align=left]Input[/align]
The input consists of a text you should display. This text consists of words and HTML tags separated by one or more spaces, tabulators or newlines.
A word is a sequence of letters, numbers and punctuation. For example, "abc,123" is one word, but "abc, 123" are two words, namely "abc," and "123". A word is always shorter than 81 characters and does not contain any '<' or '>'. All HTML tags are either <br> or <hr>.

[align=left]Output[/align]
You should display the the resulting text using this rules:
. If you read a word in the input and the resulting line does not get longer than 80 chars, print it, else print it on a new line.
. If you read a <br> in the input, start a new line.
. If you read a <hr> in the input, start a new line unless you already are at the beginning of a line, display 80 characters of '-' and start a new line (again).
The last line is ended by a newline character.

[align=left]Sample Input[/align]

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.

[align=left]Sample Output[/align]

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.

[align=left]Source[/align]
University of Ulm Local Contest 1999

[align=left]Recommend[/align]
JGShining

刷题练手感!!!!水题啊!

#include<stdio.h>
#include<string.h>
int main()
{
//freopen("test.in","r",stdin);
//freopen("test.out","w",stdout);
char str[100];
int cnt=0;//数每行的字符数
bool first=true;//记录是否是一行的开头,开头不要空格的
while(scanf("%s",&str)!=EOF)
{
if(strcmp(str,"<br>")==0){printf("\n");cnt=0;first=true;continue;}
if(strcmp(str,"<hr>")==0)
{
if(!first){printf("\n");first=true;}
for(int i=0;i<80;i++)printf("-");
printf("\n");first=true;cnt=0;
continue;
}
if(first)
{
printf("%s",str);
cnt+=strlen(str);first=false;
continue;
}
cnt+=(strlen(str)+1);first=false;
if(cnt<=80)
{
printf(" %s",str);
continue;
}
else
{
printf("\n");
printf("%s",str);
cnt=strlen(str);first=false;
}

}
if(!first)printf("\n");//最后以新行结束
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: