HDU 1088 输入输出格式题
2017-04-03 16:56
288 查看
Write a simple HTML Browser
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11882 Accepted Submission(s): 3421
[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
--------------------------------------------------------------------------------
------------------------------------------------------------------------
4000
--------
produzieren zwei Horizontal Rulers. Achtung mehrere Leerzeichen irritieren Html
genauso wenig wie mehrere Leerzeilen.
http://acm.hdu.edu.cn/showproblem.php?pid=1088
分析:一个输入输出格式的题。注意点:
1.一行80个字符,最后一个单词没有空格
2.判断是否要开新行
3.注意空格要占用一个字符的位置
。。。。。PE好久才把这题过了
#include<iostream>
#include<string>
using namespace std;
#define maxn 1000
#define LOCAL
string buff[maxn];
int totlen;
int n = 0;
const int maxLen = 80;
int main() {
#ifdef LOCAL
freopen("ACMinput.txt", "r", stdin);
#endif
while (cin >> buff[n++]);
int curlen = 0;
totlen = 0;
for (int i = 0; i < n-1; i++) {
if (buff[i] == "<br>") {
cout << endl;
totlen = 0;
}
else if (buff[i] == "<hr>") {
if (totlen) cout << endl;//判断是否开新行
for (int i = 0; i < maxLen; i++)
cout << "-";
cout << endl;
totlen = 0;
}
else { //注意技巧,第一个单词不输出空格,后面的单词在前面输出空格
curlen = buff[i].length();
if (!totlen) {
totlen = curlen;
cout << buff[i];
}
else if (curlen + totlen + 1 > 80) {
totlen = curlen;
cout << endl << buff[i];
}
else {
totlen += curlen + 1;
cout << " " << buff[i];
}
}
}
cout << endl;
return 0;
}
相关文章推荐
- ZZULIOJ【1088】手机短号【输入输出格式】
- SQL Server的日期输入输出格式设置(转)
- 操作 Wave 文件(10): 输入输出设备与格式支持
- Spring MVC json格式的输入和输出
- hdu1002题目很水。输出格式很重要。
- Hadoop数据输入输出格式
- 数据输出输入语句及格式控制【转贴】
- hdu_1048_The Hardest Problem Ever_字符输入输出问题水题一道
- C++ 输入输出格式
- Spring MVC 学习笔记 九 json格式的输入和输出
- Format()函数与格式输入与输出
- 输入输出的格式控制
- java文件输入输出常用格式
- CString::Format()函数与格式输入与输出
- 输入输出的格式控制 hex/dec/oct
- 关于输入格式的A+B形式的ACM题HDU
- 输入/输出 格式的控制_C++
- 输入输出格式错误
- 输入输出格式标记位、格式常量、格式设置函数
- 输入和输出格式: