题解 | #合法的括号序列#

合法的括号序列

https://www.nowcoder.com/practice/cd3c583ac7054a18b164fbd4ec3247c4

mod = 10**9 + 7
'''
dp[i][j]表示前i个字符中钦定j个左括号的序列数量
'''
s = input()
n = len(s)
dp = [[0]*(n + 1) for _ in range(n + 1)]
dp[0][0] = 1
for i in range(1,n+1):
    for j in range((i+1)//2,(n+1)):
        if s[i-1] == '?':
            dp[i][j] = (dp[i-1][j-1] + dp[i-1][j])%mod
        elif s[i-1] == '(':
            dp[i][j] = dp[i-1][j-1]
        else:
            dp[i][j] = dp[i-1][j]
print(dp[-1][n//2])

全部评论

相关推荐

牛客77743221...:做一段时间,公司出钱送你去缅甸和泰国旅游
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务