238025681

Balanced Parentheses

May 20th, 2016
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.68 KB | None | 0 0
  1.  
  2. import java.util.ArrayDeque;
  3. import java.util.HashMap;
  4. import java.util.Scanner;
  5. import java.util.Stack;
  6. import java.util.regex.Matcher;
  7. import java.util.regex.Pattern;
  8.  
  9. /*
  10.  
  11. package stackandqueues;
  12.  
  13. /**
  14.  *
  15.  * @author kalin
  16.  */
  17. public class O7_StackAndQueues {
  18.  
  19.     public static void main(String[] args) {
  20.         boolean isCorrectSequence = true;
  21.         Scanner scan = new Scanner(System.in);
  22.         String inputString = scan.nextLine();
  23.         Pattern pattern = Pattern.compile("[\\[\\](){}]");
  24.         Matcher matcher = pattern.matcher(inputString);
  25.         ArrayDeque<Character> bracketCharacters = new ArrayDeque<>();
  26.         HashMap<Character, Character> bracketsPair = new HashMap<>();
  27.         bracketsPair.put(']', '[');
  28.         bracketsPair.put('}', '{');
  29.         bracketsPair.put(')', '(');
  30.  
  31.         while (matcher.find()) {
  32.  
  33.             if (matcher.group().equals("]") || matcher.group().equals(")") || matcher.group().equals("}")) {
  34.                 if (!bracketCharacters.isEmpty()) {
  35.                     if (!bracketCharacters.pop().equals(bracketsPair.get(matcher.group().charAt(0)))) {
  36.                         System.out.println("NO");
  37.                          isCorrectSequence = false;
  38.                         break;
  39.                     }
  40.                 } else {
  41.                     System.out.println("NO");
  42.                     isCorrectSequence = false;
  43.                     break;
  44.                 }
  45.  
  46.             } else {
  47.  
  48.                 bracketCharacters.push(matcher.group().charAt(0));
  49.             }
  50.  
  51.         }
  52.  
  53.         if (bracketCharacters.isEmpty() &&   isCorrectSequence) {
  54.             System.out.println("YES");
  55.         }
  56.     }
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment