Program to check whether parentheses are balanced or not in Python


Suppose we have a string s consisting of parenthesis "(" and ")". We have to check whether the parentheses are balanced or not.

So, if the input is like s = "(()())(())", then the output will be True

To solve this, we will follow these steps −

  • num_open := 0
  • for each character c in s, do
    • if c is same as ')', then
      • if num_open < 0, then
        • num_open := num_open - 1
      • otherwise,
        • return False
      • otherwise,
        • num_open := num_open + 1
  • return inverse of num_open

Let us see the following implementation to get better understanding −

Example

 Live Demo

class Solution:
   def solve(self, s):
      num_open = 0
      for c in s:
         if c == ')':
            if num_open < 0:
               num_open -= 1
            else:
               return False
            else:
               num_open += 1
      return not num_open
ob = Solution()
print(ob.solve("(()())(())"))

Input

"(()())(())"

Output

False

Updated on: 06-Oct-2020

166 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements