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

Display of Provisional Answer Keys and Question Paper with Recorded Responses for Answer Key Challenge | JEE (Main) 2021 Session 4 for Paper 1 (B.E./B.Tech.)

The JEE (Main) - 2021 Session - 4 was conducted throughout the country and abroad on 26, 27, 31 August and 1 September 2021 for Paper 1 (B.E./B.Tech.) in the Computer Based Test (CBT) mode. The National Testing Agency has uploaded the Provisional Answer Keys for Paper 1 (B.E./B.Tech.) along with the Question Paper with Recorded Responses on the website https://jeemain.nta.nic.in for candidates to challenge. The procedure (as enclosed) for the challenge of Answer Key may be used. The candidates, who are not satisfied with the answer key, may challenge the same by paying a fee of ₹ 200/- (Rupees Two Hundred only) per question challenged as a non-refundable processing fee. This facility is available from 06 September 2021 to 08 September 2021 (up to 10:00 A.M.). The payment of the processing fee may be made through, Debit card/Credit Card/Net Banking/Paytm upto 08 September 2021 (upto 11:00 A.M.). No challenge will be entertained without receipt of the processing fee. The Challenges will ...

Print Permutations

 1. You are given a string str. 2. Complete the body of printPermutations function - without changing signature - to calculate and print all permutations of str. Use sample input and output to take idea about permutations. Note -> The online judge can't force you to write the function recursively but that is what the spirit of question is. Write recursive and not iterative logic. The purpose of the question is to aid learning recursion and not test you. Input Format A string str Output Format Permutations of str in order hinted by Sample output Constraints 0 <= str.length <= 7 Sample Input abc Sample Output abc acb bac bca cab cba Solution: import java.io.*; import java.util.*; public class Main {     public static void main(String[] args) throws Exception {         Scanner sc = new Scanner(System.in);         String str = sc.nextLine();         printPermutations(str,"");     }     pu...

JoSAA

JoSAA- JEE counselling Read below to know about JoSAA and related procedures... Q. What is JoSAA? A. J oSAA is an acronym for “Joint Seat Allocation Authority”. It is constituted by the Ministry of HRD to oversee joint seat allocation for the IITs, NITs, IIITs and other GFTIs. It consists of representatives from the Joint Admission Board (JAB) (for IITs) and the Central Seat Allocation Board (CSAB) (for NITs, IIITs (Triple-I-Ts) and Other-GFTIs). JoSAA is the ONLY authorized agency responsible for joint seat allocation, click here to know more... Q. Is there any other agency for conducting the seat allocation to IITs and NITs? A. No agency other than JoSAA is responsible for joint seat allocation for IITs and NIT+ Institutes. Candidates seeking information/assistance from any agency/agent other than JoSAA shall be doing so at their own risk and cost. To read more... Q. What is CSAB? A. CSAB is an acronym for “Central Seat Allocation Board”. It is an agency co...