JAVA EXAMPLE PROGRAMS

JAVA EXAMPLE PROGRAMS

Publish Your Article Here

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<Character, Character> bMap;

    static {
        bMap = new HashMap<>();
        bMap.put('(', ')');
        bMap.put('[', ']');
        bMap.put('{', '}');
    }

    static String isBalanced(String str) {

        if ((str.length() % 2) != 0) {
            return "NO";
        }
        Stack<Character> 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
<< Previous Program | Next Program >>

List Of All Interview Programs:

  1. How to reverse Singly Linked List?
  2. Find out duplicate number between 1 to N numbers.
  3. Find out middle index where sum of both ends are equal.
  4. Write a singleton class.
  5. Write a program to create deadlock between two threads.
  6. Write a program to reverse a string using recursive algorithm.
  7. Write a program to reverse a number.
  8. Write a program to convert decimal number to binary format.
  9. Write a program to find perfect number or not.
  10. Write a program to implement ArrayList.
  11. Write a program to find maximum repeated words from a file.
  12. Wrie a program to find out duplicate characters in a string.
  13. Write a program to find top two maximum numbers in a array.
  14. Write a program to sort a map by value.
  15. Write a program to find common elements between two arrays.
  16. How to swap two numbers without using temporary variable?
  17. Write a program to print fibonacci series.
  18. Write a program to find sum of each digit in the given number using recursion.
  19. Write a program to check the given number is a prime number or not?
  20. Write a program to find the given number is Armstrong number or not?
  21. Write a program to convert binary to decimal number.
  22. Write a program to check the given number is binary number or not?
  23. Write a program for Bubble Sort in java.
  24. Write a program for Insertion Sort in java.
  25. Write a program to implement hashcode and equals.
  26. How to get distinct elements from an array by avoiding duplicate elements?
  27. Write a program to get distinct word list from the given file.
  28. Write a program to get a line with max word count from the given file.
  29. Write a program to convert string to number without using Integer.parseInt() method.
  30. Write a program to find two lines with max characters in descending order.
  31. Write a program to find the sum of the first 1000 prime numbers.
  32. Find longest substring without repeating characters.
  33. Write a program to remove duplicates from sorted array.
  34. How to sort a Stack using a temporary Stack?
  35. Write a program to print all permutations of a given string.
  36. Implement Binary Search Tree (BST)
  37. Find min and max value from Binary Search Tree (BST)
  38. Find height of a Binary Search Tree (BST)
  39. Implement Binary Search Tree (BST) Level order traversal (breadth first).
  40. Implement Binary Search Tree (BST) pre-order traversal (depth first).
  41. Implement Binary Search Tree (BST) in-order traversal (depth first).
  42. Implement Binary Search Tree (BST) post-order traversal (depth first).
  43. How to check the given Binary Tree is Binary Search Tree (BST) or not?
  44. How to delete a node from Binary Search Tree (BST)?
  45. Write a program to find common integers between two sorted arrays.
  46. Write a program to find given two trees are mirror or not.
  47. HackerRank stack problem - Find maximum element.
  48. HackerRank stack problem - Balanced Brackets.
  49. HackerRank stack problem - Equal Stacks.
  50. HackerRank stack problem - Game Of Two Stacks.
Java2Novice - YouTube Channel
  1. Python Tutorial for Beginners
Knowledge Centre
Inner class and Anonymous class
Inner class: classes defined in other classes, including those defined in methods are called inner classes. An inner class can have any accessibility including private.

Anonymous class: Anonymous class is a class defined inside a method without a name and is instantiated and declared in the same place and cannot have explicit constructors.
Famous Quotations
It’s not that I’m so smart, it’s just that I stay with problems longer.
-- Albert Einstein

About Author

I'm Nataraja Gootooru, programmer by profession and passionate about technologies. All examples given here are as simple as possible to help beginners. The source code is compiled and tested in my dev environment.

If you come across any mistakes or bugs, please email me to [email protected].

Most Visited Pages

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 © 2019 by Nataraja Gootooru. All Rights Reserved.