首页 > 牛牛学括号
头像 小毅儿
发表于 2019-10-31 10:48:30
题目分析: 因为输入的多个括号是符合规则的,所以第一个字符一定是‘(’,先将其放入定义的stack中,在进行for循环中如果遇到‘(’就将其放入stack中,如果是‘)’,就抵消掉一个‘(’,并且sum的值*stack中元素的多少,再用pop将一个‘(’删除。可以理解为如果遇到右括号,则这个右括号可 展开全文
头像 alex_liu09
发表于 2022-10-02 11:44:56
思路:统计当前左括号的数量 xxx,则当前右括号就有 xxx 种删除方法,根据乘法原理则可算出答案 #include<bits/stdc++.h> #define int long long #define mod 1000000007 using namespace std; stri 展开全文
头像 尙尢
发表于 2021-12-16 22:14:01
思路: 根据样例分析,容易得知,右括号匹配左括号的不同方式跟左括号的个数有关。 有三个左括号即可随机匹配三种左括号...以此类推。 题目保证输入的字符串是合法的,那么第一个一定是左括号“(” 循环判断,当遇到“(”时候左括号计数+1,当遇到“)”时,先计算能有多少种匹配方法(与左括号数有关),再删 展开全文
头像 lkjhxx
发表于 2022-08-05 17:49:30
我是真的不会贪心!!! 一上来就寄,不想学贪心了 整体思路是:遇到左括号进栈,遇到右括号计算总数加出栈一个左括号 代码如下: s = input() i = 0 n, res = 0, 1 while i < len(s): if s[i] == '(': n += 展开全文