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

Practice Tags :

Recommended Posts:

0 Average Difficulty : 0/5.0
No votes yet.