本文最后更新于:2022年10月9日 下午
题目描述

实现
哈哈家人们!今天的题目又是找规律(
来看题目告诉我们的,再多看看几个例子,我们可以总结出下面的规律:
'()'字符串,就是一个1
')('字符串,就是一个+
'(('字符串,就是2
'))'字符串则是告诉我们,需要从栈中取数出来进行运算,直到进行过运算为止
所以我们还需要两个栈,一个用来保存数字,一个用来保存数组。然后遍历题目给我们的字符串即可。当然最后不能忘记把运算符栈清空。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution: def scoreOfParentheses(self, s: str) -> int: nums = deque() ops = deque() for i in range(1, len(s)): if s[i - 1: i + 1] == '()': nums.append(int(1)) elif s[i - 1: i + 1] == ')(': ops.append('+') elif s[i - 1: i + 1] == '((': nums.append(int(2)) ops.append('*') else: while ops.pop() != '*': nums.append(nums.pop() + nums.pop()) nums.append(nums.pop() * nums.pop()) while ops: ops.pop() nums.append(nums.pop() + nums.pop()) return nums.pop()
|
(一看题解又是被薄纱,无论是编程思维还是数学思维这块还是不如人家,把这个想成树也是厉害,用dfs出答案。)

希望本文章能够帮到您~