Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- import java.util.Stack;
- public class Main {
- public static void main(String[] args) {
- Scanner reader = new Scanner(System.in);
- int n = Integer.parseInt(reader.nextLine());
- String[] input = new String[n+1];
- Stack<String> closers = new Stack<>();
- int spaceCounter =0;
- String stop = "#0";
- input[input.length-1] = stop;
- for (int i = 0; i <n ; i++) {
- input[i] = reader.nextLine();
- }
- int[] myIntArr = new int[n+1];
- myIntArr[myIntArr.length-1] = Integer.MIN_VALUE;
- for (int i = 0; i <n ; i++) {
- myIntArr[i] = Integer.parseInt(input[i].substring(1));
- }
- Stack<Integer> closerNumbers = new Stack<>();
- for (int i = 0; i <n ; i++) {
- addSpace(spaceCounter);
- System.out.printf("<%s>\n",input[i]);
- closers.push(String.format("</%s>\n",input[i]));
- closerNumbers.push(myIntArr[i]);
- if(myIntArr[i] < myIntArr[i+1]){
- spaceCounter++;
- continue;
- } else {
- addSpace(spaceCounter);
- System.out.print(closers.pop());
- closerNumbers.pop();
- int len = closers.size();
- for (int j = 0; j <len ; j++) {
- if(closerNumbers.peek() >= myIntArr[i+1]){
- spaceCounter--;
- addSpace(spaceCounter);
- System.out.print(closers.pop());
- closerNumbers.pop();
- } else {
- break;
- }
- }
- }
- }
- }
- private static void addSpace(int spaceCounter){
- if(spaceCounter >0){
- for (int i = 0; i <spaceCounter ; i++) {
- System.out.print(" ");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment