Open In App

Data Structures | Stack | Question 5

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




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/amp/ for details.

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

Article Tags :