Advertisement
Hey_Donny

HDNL Toy

May 30th, 2022
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3. import java.util.Stack;
  4.  
  5. public class HDNLToy2 {
  6. public static Scanner scanner = new Scanner(System.in);
  7.  
  8. public static void main(String[] args) {
  9. ArrayList<String> list = new ArrayList<>();
  10. int n = Integer.parseInt(scanner.nextLine());
  11.  
  12. for (int i = 0; i < n; i++) {
  13. list.add(scanner.nextLine());
  14. }
  15.  
  16. indentationStation(list);
  17. }
  18.  
  19. public static void indentationStation(ArrayList<String> list) {
  20. Stack<String> stack = new Stack<>();
  21. int numberOne;
  22. int numberTwo;
  23. stack.add(list.get(0));
  24. System.out.printf("<" + stack.peek() + ">%n");
  25. for (int i = 1; i < list.size(); i++) {
  26. numberOne = Integer.parseInt(list.get(i).substring(1));
  27. numberTwo = Integer.parseInt(list.get(i - 1).substring(1));
  28. if (numberOne > numberTwo) {
  29. stack.add(list.get(i));
  30. System.out.printf("%1$" + (Math.max(stack.size() - 1, 1)) + "s<" + stack.peek() + ">%n", "");
  31. } else {
  32. if (!stack.isEmpty()) {
  33. while (!stack.isEmpty()) {
  34. int numberThree = Integer.parseInt(stack.peek().substring(1));
  35. if (numberThree >= numberOne) {
  36. System.out.printf("%1$" + (Math.max(stack.size() - 1, 1)) + "s</" + stack.peek() + ">%n", "");
  37. stack.pop();
  38. } else {
  39. stack.add(list.get(i));
  40. System.out.printf("%1$" + (Math.max(stack.size() - 1, 1)) + "s<" + stack.peek() + ">%n", "");
  41. break;
  42. }
  43. }
  44. if (stack.isEmpty()) {
  45. stack.add(list.get(i));
  46. System.out.printf("<" + stack.peek() + ">%n");
  47. }
  48. } else {
  49. stack.add(list.get(i));
  50. System.out.printf("s<" + stack.peek() + ">%n");
  51. }
  52. }
  53. }
  54. if (!stack.isEmpty()) {
  55. int numberFour = stack.size();
  56. for (int i = 0; i < numberFour; i++) {
  57. System.out.printf("%1$" + (Math.max(stack.size() - 1, 1)) + "s</" + stack.pop() + ">%n", "");
  58. }
  59. }
  60. }
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement