ibragimova_mariam

Перебор правильных скобочных последовательностей,скобки() []

Mar 30th, 2020
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. import java.sql.Statement;
  2. import java.util.Iterator;
  3. import java.util.Scanner;
  4. import java.util.Stack;
  5.  
  6. public class Test
  7. {
  8. static int n;
  9. static int num = 0;
  10.  
  11. private static void bal(Stack<Character> stack1, Stack<Character> stack2)
  12. {
  13. if (stack2.size() == n)
  14. {
  15. if (stack1.empty())
  16. {
  17. num++;
  18. if (num == 8233)
  19. {
  20. Iterator<Character> it = stack2.iterator();
  21. for (int i = 0; i < n; i++)
  22. {
  23. System.out.print(it.next());
  24. }
  25. System.out.println();
  26. }
  27. }
  28.  
  29. return;
  30. }
  31.  
  32. stack1.push('(');
  33. stack2.push('(');
  34. bal(stack1, stack2);
  35. stack1.pop();
  36. stack2.pop();
  37.  
  38. if (!stack1.empty() && stack1.peek() == '(')
  39. {
  40. stack1.pop();
  41. stack2.push(')');
  42. bal(stack1, stack2);
  43. stack1.push('(');
  44. stack2.pop();
  45. }
  46.  
  47. stack1.push('[');
  48. stack2.push('[');
  49. bal(stack1, stack2);
  50. stack1.pop();
  51. stack2.pop();
  52.  
  53. if (!stack1.empty() && stack1.peek() == '[')
  54. {
  55. stack1.pop();
  56. stack2.push(']');
  57. bal(stack1, stack2);
  58. stack1.push('[');
  59. stack2.pop();
  60. }
  61. }
  62.  
  63. public static void main(String[] args)
  64. {
  65. Scanner sc = new Scanner(System.in);
  66. System.out.println("Enter n:");
  67. n = sc.nextInt();
  68. n += n;
  69. Stack<Character> stack1 = new Stack<>();
  70. Stack<Character> stack2 = new Stack<>();
  71. bal(stack1, stack2);
  72. }
  73. }
Add Comment
Please, Sign In to add comment