You can find the problem here and try to solve it by yourself.
Follows my solution and then a concise explanation.
Let’s explain the logic of this function. First of all I have used a dictionary structure to map parentheses to integers, just to avoid working with strings.
The method isBalanced takes a string s of open and closed parentheses that match the ones in the dictionary parentheses.
There is an array variable stack where an open parentheses is added, while a closed one is removed. There is a try-except because if the parentheses are not matched then the string in input in not balanced and so a NO message is printed. The line
if valore + elem == 0 is required because there may be the case in which there is an open round bracket and a closed brace, so in this case we should also return No.
A Yes message is returned when the stack is empty and no unmatching open and closed parentheses are found.