## JAVA EXAMPLE PROGRAMS

Checkout for Promo Codes

# Program: HackerRank stack problem - Balanced Brackets.

 Problem Description: Problem Reference: Balanced Brackets A bracket is considered to be any one of the following characters: (, ), {, }, [, or ]. Two brackets are considered to be a matched pair if the an opening bracket (i.e., (, [, or {) occurs to the left of a closing bracket (i.e., ), ], or }) of the exact same type. There are three types of matched pairs of brackets: [], {}, and (). A matching pair of brackets is not balanced if the set of brackets it encloses are not matched. For example, {[(])} is not balanced because the contents in between { and } are not balanced. The pair of square brackets encloses a single, unbalanced opening bracket, (, and the pair of parentheses encloses a single, unbalanced closing square bracket, ]. By this logic, we say a sequence of brackets is balanced if the following conditions are met: It contains no unmatched brackets. The subset of brackets enclosed within the confines of a matched pair of brackets is also a matched pair of brackets. Given n strings of brackets, determine whether each sequence of brackets is balanced. If a string is balanced, return YES. Otherwise, return NO. Sample Input ```3 {[()]} {[(])} {{[[(())]]}}``` Sample Output ```YES NO YES``` Our Approach 1) Declare a stack. 2) Now traverse the expression string character by character. If the current character is a opening bracket (‘(‘ or ‘{‘ or ‘[‘) then push it to stack. If the current character is a closing bracket (‘)’ or ‘}’ or ‘]’) then pop character from stack and if the popped character is the matching opening bracket then fine else parenthesis are not balanced. 3) After complete traversal, if there the stack is not empty, then the expression is not balanced.

 BalancedBrackets ```package com.java2novice.algos; import java.io.IOException; import java.util.HashMap; import java.util.Scanner; import java.util.Stack; public class BalancedBrackets { static HashMap bMap; static { bMap = new HashMap<>(); bMap.put('(', ')'); bMap.put('[', ']'); bMap.put('{', '}'); } static String isBalanced(String str) { if ((str.length() % 2) != 0) { return "NO"; } Stack stack = new Stack<>(); for(int i=0; i < str.length(); i++) { Character ch = str.charAt(i); if(bMap.containsKey(ch)) { stack.push(ch); } else if(stack.isEmpty() || ch != bMap.get(stack.pop())) { return "NO"; } } return stack.isEmpty()? "YES": "NO"; } private static final Scanner scanner = new Scanner(System.in); public static void main(String[] args) throws IOException { int t = scanner.nextInt(); scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?"); for (int tItr = 0; tItr < t; tItr++) { String s = scanner.nextLine(); String result = isBalanced(s); System.out.println(result); } scanner.close(); } } ```

 Output: ```3 {[()]} {[(])} {{[[(())]]}} YES NO YES```

#### List Of All Interview Programs:

Java2Novice - YouTube Channel
Knowledge Centre
What is adapter class?
An adapter class provides the default implementation of all methods in an event listener interface. Adapter classes are very useful when you want to process only few of the events that are handled by a particular event listener interface. You can define a new class by extending one of the adapter classes and implement only those events relevant to you.
Famous Quotations
Be yourself; everyone else is already taken.
-- Oscar Wilde

### Other Interesting Sites

 Reference: Java™ Platform Standard Ed. 7 - API Specification | Java™ Platform Standard Ed. 8 - API Specification | Java is registered trademark of Oracle. Privacy Policy | Copyright © 2020 by Nataraja Gootooru. All Rights Reserved.