import sys d = {'(': -1, ')': 1, ' ': 0} class Node:     def __init__(self, val):         self.val = val         self.left = None         self.right = None class Main:     def __init__(self):         self.num = 0     def solve(self, s1, s2):         # 检查是否存在可能性         res = 0         for c in s1:             res += d[c]         for c in s2:             res += d[c]         if res != 0:             return 0         self.s1 = s1         self.s2 = s2         self.N = len(s1) + len(s2)         root = Node('')         self.buildTree(root, 0, 0)         self.count(root)         return self.num     def buildTree(self, root, i, j):         if i < len(self.s1):             left = root.val + self.s1[i]             if check(left):                 root.left = Node(left)                 self.buildTree(root.left, i + 1, j)         if j < len(self.s2):             right = root.val + self.s2[j]             if check(right):                 root.right = Node(right)                 self.buildTree(root.right, i, j + 1)     def count(self, root):         if root.left != None:             self.count(root.left)         if root.right != None:             self.count(root.right)         if len(root.val) == self.N:             self.num += 1 def check(s):     res = 0     for c in s:         res += d[c]         if res > 0:             return False     return True if __name__ == '__main__':     s1 = sys.stdin.readline().strip()     s2 = sys.stdin.readline().strip()     sol = Main()     print(sol.solve(s1, s2)) 第四题,大佬见笑
点赞 1

相关推荐

点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务