desislava_topuzakova

06. Balanced Parentheses

May 21st, 2021
933
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.44 KB | None | 0 0
  1. import java.util.ArrayDeque;
  2. import java.util.Collections;
  3. import java.util.Scanner;
  4. import java.util.Stack;
  5.  
  6. public class demo {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.         //проверка дали скобата е отворена или затворена
  10.         String input  = scanner.nextLine(); //"{{[[(())]]}}"
  11.  
  12.         ArrayDeque<Character> openBrackets = new ArrayDeque<>();
  13.         boolean areBalanced = false;
  14.         for (int index = 0; index < input.length() ; index++) {
  15.             char currentBracket = input.charAt(index);
  16.             //проверка дали скобата е отворена -> ( { [
  17.             if (currentBracket == '(' || currentBracket == '{' || currentBracket == '[') {
  18.                 openBrackets.push(currentBracket);
  19.             } //проверка дали скобата е затворена -> ) } ]
  20.             else if (currentBracket == ')' || currentBracket == '}' || currentBracket == ']') {
  21.                 //взимам коя е последната отворена -> проверка дали последната отворена съвпада със затворената
  22.                 if(openBrackets.isEmpty()) {
  23.                    areBalanced = false;
  24.                    break;
  25.                 }
  26.                 char lastOpenBracket = openBrackets.pop();
  27.                 //знам коя е отворената и коя е затворента => проверка дали съвпадат
  28.                 //( )
  29.                 //{ }
  30.                 // [ ]
  31.                 if (lastOpenBracket == '(' && currentBracket == ')') {
  32.                     //balanced pair
  33.                     areBalanced = true;
  34.                 } else if (lastOpenBracket == '{' && currentBracket == '}') {
  35.                     //balanced pair
  36.                     areBalanced = true;
  37.                 } else if (lastOpenBracket == '[' && currentBracket == ']') {
  38.                     //balanced pair
  39.                     areBalanced = true;
  40.                 } else {
  41.                     //NO balance
  42.                     areBalanced = false;
  43.                     break;
  44.                 }
  45.             }
  46.  
  47.         }
  48.  
  49.         //проверка дали всички са балансирани
  50.         if(areBalanced) {
  51.             System.out.println("YES");
  52.         } else {
  53.             System.out.println("NO");
  54.         }
  55.  
  56.  
  57.  
  58.     }
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment