• + 0 comments

    Python3

    import os
    
    def isBalanced(s):
        stack = []
        bracket_map = {')': '(', '}': '{', ']': '['}  # Mapping of closing to opening brackets
    
        for char in s:
            if char in bracket_map.values():  # If it's an opening bracket
                stack.append(char)
            elif char in bracket_map:  # If it's a closing bracket
                if not stack or stack[-1] != bracket_map[char]:
                    return "NO"
                stack.pop()  # Pop the matching opening bracket
            else:
                return "NO"  # Invalid character (not necessary per constraints)
        
        return "YES" if not stack else "NO"
    
    if __name__ == '__main__':
        fptr = open(os.environ['OUTPUT_PATH'], 'w')
    
        t = int(input().strip())  # Number of test cases
    
        for _ in range(t):
            s = input().strip()
            result = isBalanced(s)
            fptr.write(result + '\n')
    
        fptr.close()