Advertisement
Didart

Balanced Parentheses

Dec 29th, 2022
734
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.50 KB | None | 0 0
  1. package StacksAndQueues1;
  2.  
  3. import java.util.ArrayDeque;
  4. import java.util.Scanner;
  5.  
  6. public class BalancedParentheses {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         String brackets = scanner.nextLine();
  11.         boolean isBalanced = true;
  12.         ArrayDeque<Character> openingBrackets = new ArrayDeque<>();
  13.  
  14.         for (int i = 0; i < brackets.length(); i++) {
  15.             char currentBracket = brackets.charAt(i);
  16.  
  17.             if (currentBracket == '(' || currentBracket == '[' || currentBracket == '{') {
  18.                 openingBrackets.push(currentBracket);
  19.             } else {
  20.  
  21.                 if (openingBrackets.isEmpty()) {
  22.                     isBalanced = false;
  23.                     break;
  24.                 }
  25.                 char lastOpeningBracket = openingBrackets.pop();
  26.                 if (currentBracket == '}' && lastOpeningBracket != '{') {
  27.                     isBalanced = false;
  28.                     break;
  29.                 } else if (currentBracket == ')' && lastOpeningBracket != '(') {
  30.                     isBalanced = false;
  31.                     break;
  32.                 } else if (currentBracket == ']' && lastOpeningBracket != '[') {
  33.                     isBalanced = false;
  34.                     break;
  35.                 }
  36.             }
  37.         }
  38.         if (isBalanced && openingBrackets.isEmpty()) {
  39.             System.out.println("YES");
  40.         } else {
  41.             System.out.println("NO");
  42.         }
  43.     }
  44. }
  45.  
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement