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))
第四题,大佬见笑