Remove_Invalid_Parenthesis.py

This commit is contained in:
Vilas Sonje 2024-10-31 11:56:48 +05:30 committed by GitHub
parent 52602ea5b6
commit 074e3c8732
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -0,0 +1,50 @@
def isParenthesis(c):
return ((c == '(') or (c == ')'))
def isValidString(str):
cnt = 0
for i in range(len(str)):
if (str[i] == '('):
cnt += 1
elif (str[i] == ')'):
cnt -= 1
if (cnt < 0):
return False
return (cnt == 0)
# method to remove invalid parenthesis
def removeInvalidParenthesis(str):
if (len(str) == 0):
return
visit = set()
q = []
temp = 0
level = 0
q.append(str)
visit.add(str)
while(len(q)):
str = q[0]
q.pop(0)
if (isValidString(str)):
print(str)
level = True
if (level):
continue
for i in range(len(str)):
if (not isParenthesis(str[i])):
continue
temp = str[0:i] + str[i + 1:]
if temp not in visit:
q.append(temp)
visit.add(temp)
expression = "()())()"
removeInvalidParenthesis(expression)
expression = "()v)"
removeInvalidParenthesis(expression)