Open In App

Data Structures | Stack | Question 5

Like Article
Like
Save Article
Save
Share
Report issue
Report

Following is an incorrect pseudocode for the algorithm which is supposed to determine whether a sequence of parentheses is balanced: 

C




declare a character stack
while ( more input is available)
{
   read a character
   if ( the character is a \'(\' )
      push it on the stack
   else if ( the character is a \')\' and the stack is not empty )
      pop a character off the stack
   else
      print \"unbalanced\" and exit
 }
 print \"balanced\"


Which of these unbalanced sequences does the above code think is balanced? 

(A)

((())

(B)

())(()

(C)

(()()))

(D)

(()))()



Answer: (A)

Explanation:

At the end of while loop, we must check whether the stack is empty or not. For input ((()), the stack doesn\’t remain empty after the loop. See http://www.geeksforgeeks.org/check-for-balanced-parentheses-in-an-expression/ for details.


Quiz of this Question
Please comment below if you find anything wrong in the above post


Last Updated : 09 Feb, 2013
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads