Skip to main content

Java Data Structures Stacks | JavaTutorial

 Syntax to create an Stack:

// Create Integer type stack
Stack < Integer > myStack = new Stack<>();

The above code create an stack named myStack which can store integers.

Some more functions which we can use with stack:


  • myStack.push(x) : Use push() to push an element into the stack.
  • myStack.pop() : To remove an element from the top of the stack, we use the pop() method.
  • myStack.peek() : The peek() method returns an object from the top of the stack.
  • myStack.empty() : To check whether a stack is empty or not, we use the empty() method.


Now, try to solve the below problem using stack :

Given a string A consisting only of ’(‘ and ’)’.

You need to find whether parantheses in A is balanced or not ,if it is balanced then print 1 else print 0.

Examples of some correctly balanced strings are: “()()”, “((()))”, “((()))”

Examples of some unbalanced strings are: “()(“, “(())”, “((“, “)(“ etc.

Problem Constraints 1 <= Number of Testcases <= 100 1 <= |A| <= 105

Input Format First line of input consist of single integer T denoting the number of testcases. Each testcase has a single line of input containing an string A.

Output Format For each testcase output a single line i.e print 1 if parantheses in string are balanced else print 0.

Example Input

Input 1:

 2
 "(()())"
 "(()"

Example Output

Output 1:

 1
 0

Example Explanation

Explanation 1:

 Testcase 1: Given string (()()) is balanced so we print 1
 Testcase 2: Given string (() is not balanced so we print 0


Solution:

import java.lang.*;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        // YOUR CODE GOES HERE
        // Please take input and print output to standard input/output (stdin/stdout)
        // DO NOT USE ARGUMENTS FOR INPUTS
        // E.g. 'Scanner' for input & 'System.out' for output
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.nextLine();
        while(n-- > 0){
            String str = sc.nextLine();
            Stack<Character> st = new Stack<Character>();
            // System.out.println("Empty "+st.empty());
            boolean flag = true;
            for(int i=0;i<str.length();i++){
                Character ch = (Character)str.charAt(i);
                // System.out.println("Char: "+ch);
                if(ch == '('){
                    st.push(ch);
                }else if(ch == ')'){
                    if(st.empty() == false && st.peek() == '('){
                        st.pop();
                    }else{
                        flag = false;
                        break;
                    }                                        
                }             
            }          
            if(flag && st.empty())  
                System.out.println(1);
            else 
                System.out.println(0);
        }
    }
}

Comments

Popular posts from this blog

Classes and Objects | Accenture TFA

  Question  1 Correct Mark 1.00 out of 1.00 Flag question Question text ___ and _____ are the access specifiers that can be applied to top level Class. Select one or more: public   protected default   private Feedback Your answer is correct. The correct answers are: default, public Question  2 Correct Mark 1.00 out of 1.00 Flag question Question text class Sample{      private double num = 100;    private int square(int a){ return a*a;    } }   public class Test{    public static void main(String args[]){   Sample obj = new Sample();   System.out.println(obj.num);  System.out.println(obj.square(10));    }   } Select one: Compile time error   Run time error Executes but no output 100 Feedback Your answer is correct. The correct answer is: Compile time error Question  3 Correct Mark 1.00 out of 1.00 Flag question Question text Choose the appropriate access specifier for the attribute value so that it can be accessed from anywhere. class Test { Choose... private protected public d

Spot Round

Never ever give up !!! “Life is a journey with up and downs” Feeling happy when everything is right is natural, but feeling sad for something gone wrong can’t be justified. Many say miracle doesn’t happen, but a miracle is something that doesn’t have logic… Do you believe in miracles? So, stop seeing logic everywhere and then you can feel miracles. I want to share something… During my counselling for Bachelor’s degree till last round, I was unable to get a seat in college I want to study in. It felt like everything has gone. Then I heard about Spot Round. I was not sure to secure a seat. But I went there to try my luck, in a hope of a miracle. So, I kept ready all my necessary documents made a DD for this round. While I was going to reporting centre my mind was full of the variety of thoughts. I made a mistake and I was little late for reporting. So, I rushed up through check-in and register myself for this special round. Then I went to a hall where everyone

Certificates Format JoSAA 2018

Certificates Format JoSAA 2018 JoSAA certificate formats  required at time of documents verification at reporting centres are released and must download them from here... Click the  JoSAA certificate formats  and you will get the certificate you want for JoSAA. You can download required formats from this page. Do check for these documents before leaving your place... Click here to get the checklist for JoSAA counselling documents verification... Know more about first-round result 2018... Certificates Format JoSAA 2018 Format for Document Verification For admission to IITs and ISM The format for Document Verification For admission to IITs and ISM is given below. You will have to follow this pattern for JoSAA document Verification, click here to download... Format for Document Verification For admission to NITs, IIITs and Other-GFTIs For admission to NITs, IIITs and Other-GFTIs candidates will have to verify their documents and here is the format