~~~
# Write a simple HTML Browser
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 9459????Accepted Submission(s): 2678
~~~
Problem Description
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.
Input
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>.
Output
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.
Sample Input
~~~
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.
~~~
?
Sample Output
~~~
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.
~~~
~~~
import java.util.Scanner;
public class Main{
/**
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = "",strCom = "",strComCopys = "", strCopy = "";
int countNum = 0;
while(scanner.hasNext())
{
str = scanner.next();
if(str.equals("<br>"))
{
strCom = "";
System.out.println();
}
else if(str.equals("<hr>"))
{
if(strCom.length() > 0)
System.out.println("\r\n--------------------------------------------------------------------------------");
else
System.out.println("--------------------------------------------------------------------------------");
strCom = "";
}
else if(str != " " && str.trim().length() > 0)
{
strComCopys = strCom;
if(strCom.length() > 0)
strCom += " " + str;
else
strCom += str;
countNum = strComCopys.length();
if(strCom.length() > 80)
{
System.out.println();
strCom = str;
countNum = 0;
strComCopys = "";
}
if(countNum == 0)
System.out.print(str);
else
System.out.print(" " + str);
}
strCopy = str;
}
System.out.println();
scanner.close();
}
}
~~~
- 前言
- 求和的問題ACM
- A+B問題acm
- 1091ACM求和
- 杭電ACM1092求和問題詳解
- ACM杭電的1093求和問題
- 杭電ACM1094計算A+B的問題
- 杭電ACM1095解決A+B問題
- 杭電ACM1096求和問題
- 杭電Acm1001解決求和的問題
- 杭電ACM1008電梯問題C++
- 杭電ACM大賽2000關于ASCII碼排序的問題
- 杭電ACM2006奇數的乘積
- 杭電ACM數值統計2008
- 杭電ACM1019求最大公約數
- 杭電ACM1108求最小公倍數
- 杭電ACM2035人見人愛的A^B
- 杭電ACM1061N^N求最右邊的數的問題
- 杭電ACM1021裴波納挈數AGAIN
- 杭電ACm1005求f(n)非遞歸
- 杭電ACM1071The area---------求積分面積
- 杭電ACM吃糖果問題
- 杭電ACm求數列的和2009
- 杭電ACM多項式求和--》2011
- 杭電ACM。。。sort
- 杭電ACM1004
- 杭電ACM2043密碼的問題已經AC
- 杭電ACM2041樓梯問題
- 動態規劃C++::杭電ACM1003
- 杭電ACM----2018母牛的故事
- 杭電ACM2007平方和與立方和
- 盧卡斯隊列
- 全國軟件2. 三人年齡
- 全國軟件3. 考察團組成
- 全國軟件--微生物增殖
- 全國軟件填寫算式
- 全國軟件-----------猜生日
- 全國軟件---------歐拉與雞蛋
- Java經典算法四十例編程詳解+程序實例
- 杭電ACMA + B Problem II問題解析
- 杭電ACM1018BigNumber解析
- 杭電ACM1088 Write a simple HTML Browser Java
- 杭電ACM1106排序Java代碼
- 杭電ACM 1012 u Calculate e java
- 杭電ACM 1020 Encoding java解析
- 杭電1047 An Easy Task - java 解讀
- 杭電ACM 1040 As Easy As A+B java 解讀
- 杭電ACM 1041 Computer Transformation java代碼詳解AC
- 杭電ACM 1030 Delta-wave java代碼解析