SlavCodes

Untitled

Nov 3rd, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.Stack;
  3.  
  4. public class Main {
  5.  
  6. public static void main(String[] args) {
  7. Scanner reader = new Scanner(System.in);
  8. int n = Integer.parseInt(reader.nextLine());
  9. String[] input = new String[n+1];
  10. Stack<String> closers = new Stack<>();
  11. int spaceCounter =0;
  12. String stop = "#0";
  13. input[input.length-1] = stop;
  14.  
  15. for (int i = 0; i <n ; i++) {
  16. input[i] = reader.nextLine();
  17. }
  18.  
  19. int[] myIntArr = new int[n+1];
  20. myIntArr[myIntArr.length-1] = Integer.MIN_VALUE;
  21.  
  22. for (int i = 0; i <n ; i++) {
  23. myIntArr[i] = Integer.parseInt(input[i].substring(1));
  24. }
  25.  
  26. Stack<Integer> closerNumbers = new Stack<>();
  27.  
  28. for (int i = 0; i <n ; i++) {
  29. addSpace(spaceCounter);
  30. System.out.printf("<%s>\n",input[i]);
  31. closers.push(String.format("</%s>\n",input[i]));
  32. closerNumbers.push(myIntArr[i]);
  33. if(myIntArr[i] < myIntArr[i+1]){
  34. spaceCounter++;
  35. continue;
  36. } else {
  37. addSpace(spaceCounter);
  38. System.out.print(closers.pop());
  39. closerNumbers.pop();
  40. int len = closers.size();
  41. for (int j = 0; j <len ; j++) {
  42. if(closerNumbers.peek() >= myIntArr[i+1]){
  43. spaceCounter--;
  44. addSpace(spaceCounter);
  45. System.out.print(closers.pop());
  46. closerNumbers.pop();
  47.  
  48. } else {
  49. break;
  50. }
  51. }
  52. }
  53. }
  54. }
  55.  
  56. private static void addSpace(int spaceCounter){
  57. if(spaceCounter >0){
  58. for (int i = 0; i <spaceCounter ; i++) {
  59. System.out.print(" ");
  60. }
  61. }
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment