ผลต่างระหว่างรุ่นของ "01204212/statuses"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 40: แถว 40:
  
 
The output contains ''n'' lines.  Each line is a comment shown in the nested format (as in the example).  Each line starts with a dash ("-") and is indented based on its comment level.  (Comments of the status (i.e., those comments whose ''p''=0) are level 0, comments that reply on these level 0 comments are level 1, comments that reply on level 1 comments are level 2, and so on.)
 
The output contains ''n'' lines.  Each line is a comment shown in the nested format (as in the example).  Each line starts with a dash ("-") and is indented based on its comment level.  (Comments of the status (i.e., those comments whose ''p''=0) are level 0, comments that reply on these level 0 comments are level 1, comments that reply on level 1 comments are level 2, and so on.)
 +
 +
== Codes ==
 +
Use these codes as your starting point.
 +
 +
=== Comment.java ===
 +
<syntaxhighlight lang="java">
 +
public class Comment {
 +
 +
private int id;
 +
private int parentId;
 +
private String msg;
 +
 +
public Comment(int id, int parentId, String msg) {
 +
this.setId(id);
 +
this.setParentId(parentId);
 +
this.setMsg(msg);
 +
}
 +
 +
public int getId() {
 +
return id;
 +
}
 +
 +
public void setId(int id) {
 +
this.id = id;
 +
}
 +
 +
public int getParentId() {
 +
return parentId;
 +
}
 +
 +
public void setParentId(int parentId) {
 +
this.parentId = parentId;
 +
}
 +
 +
public String getMsg() {
 +
return msg;
 +
}
 +
 +
public void setMsg(String msg) {
 +
this.msg = msg;
 +
}
 +
}
 +
</syntaxhighlight>
 +
 +
=== Main.java ===
 +
<syntaxhighlight lang="java">
 +
import java.io.BufferedReader;
 +
import java.io.InputStreamReader;
 +
 +
public class Main {
 +
 +
public static void main(String [] args) throws Exception {
 +
    BufferedReader reader = new BufferedReader(
 +
              new InputStreamReader(System.in) );
 +
 +
int n = Integer.parseInt(reader.readLine());
 +
Comment[] comments = readComments(n, reader);
 +
 +
// do your work here
 +
}
 +
 +
private static Comment[] readComments(int n, BufferedReader reader) throws Exception {
 +
Comment[] comments = new Comment[n];
 +
 +
for(int i=0; i<n; i++) {
 +
String[] items = reader.readLine().split(" ");
 +
Comment c = new Comment(i+1, Integer.parseInt(items[0]), items[1]);
 +
comments[i] = c;
 +
}
 +
return comments;
 +
}
 +
}
 +
</syntaxhighlight>

รุ่นแก้ไขเมื่อ 23:24, 17 สิงหาคม 2559

Course page: 01204212

You are given an information on comments are posted. You want to print out a report on that in a nicely form.

Input

  • First line: integer n (the number of comments)
  • The next n lines, each line specify a comment. Line i + 1 for 1<=i<=n specifies the i-th comment. In this line, there is an integer p (p < i) and a string s (consiting of a - z and an underline (_) whose length is at most 30). This comment replies to the p-th comment. If p=0, this comment replies to the status itself. The string s is the comment text.

Input example

7
0 hello_world
0 this_is_another_comment
1 first_reply
2 good_morning_thailand
1 second_one
1 third_one
5 when_it_is_ok

Output example

For this input, the expected report would be (see the description of the output at the end of this task description):

- 1 hello_world
  - 3 first_reply
  - 5 second_one
    - 7 when_it_is_ok
  - 6 third_one
- 2 this_is_another_comment
  - 4 good_morning_thailand

Test data: Download here

Output

The output contains n lines. Each line is a comment shown in the nested format (as in the example). Each line starts with a dash ("-") and is indented based on its comment level. (Comments of the status (i.e., those comments whose p=0) are level 0, comments that reply on these level 0 comments are level 1, comments that reply on level 1 comments are level 2, and so on.)

Codes

Use these codes as your starting point.

Comment.java

public class Comment {

	private int id;
	private int parentId;
	private String msg;

	public Comment(int id, int parentId, String msg) {
		this.setId(id);
		this.setParentId(parentId);
		this.setMsg(msg);
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getParentId() {
		return parentId;
	}

	public void setParentId(int parentId) {
		this.parentId = parentId;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}
}

Main.java

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

	public static void main(String [] args) throws Exception {
	    BufferedReader reader = new BufferedReader(
	               new InputStreamReader(System.in) );

		int n = Integer.parseInt(reader.readLine());
		Comment[] comments = readComments(n, reader); 
		
		// do your work here
	}

	private static Comment[] readComments(int n, BufferedReader reader) throws Exception {
		Comment[] comments = new Comment[n];
		
		for(int i=0; i<n; i++) {
			String[] items = reader.readLine().split(" ");
			Comment c = new Comment(i+1, Integer.parseInt(items[0]), items[1]);
			comments[i] = c;
		}
		return comments;
	}
}