diff --git a/paranthesis.py b/paranthesis.py index 3b0d65d..e5f4cc0 100644 --- a/paranthesis.py +++ b/paranthesis.py @@ -1,6 +1,6 @@ +openingParanthesisList=['(','{','['] +closingParanthesisList=[')','}',']'] def checkBalance(expression): - openingParanthesisList=['(','{','['] - closingParanthesisList=[')','}',']'] stack=[] for char in expression: if char in openingParanthesisList: diff --git a/validator.py b/validator.py new file mode 100644 index 0000000..4651d06 --- /dev/null +++ b/validator.py @@ -0,0 +1,30 @@ +class Validator: + parantheses_dict={ + '(':')', + '{':'}', + '[':']' + } + + def check_parantheses_balance(self,expression): + parantheses_stack=[] + for char in expression: + if char in self.parantheses_dict.keys(): + parantheses_stack.append(char) + elif char in self.parantheses_dict.values(): + if len(parantheses_stack)!=0: + popped_parentheses=parantheses_stack.pop() + if self.parantheses_dict[popped_parentheses]!=char: + return False + else: + return False + return len(parantheses_stack)==0 + +def main(): + expression_one="(){}}" + expression_two="(){}" + validator_object=Validator() + print("{} : {}".format(expression_one,validator_object.check_parantheses_balance(expression_one))) + print("{} : {}".format(expression_two,validator_object.check_parantheses_balance(expression_two))) + +if __name__=='__main__': + main()