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?

Source: http://www.cs.colorado.edu/~main/questions/chap07q.html
(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 https://www.geeksforgeeks.org/check-for-balanced-parentheses-in-an-expression/ for details.






Practice Tags :

Recommended Posts:



0 Average Difficulty : 0/5.0
No votes yet.