LeetCode 算法 856. 括号的分数

Posted Alex Hub

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 算法 856. 括号的分数相关的知识,希望对你有一定的参考价值。

856. 括号的分数

Ideas

遇到括号那基本就是用栈了。

括号的分数会因为深度的增加而成倍增加,所以利用栈的时候需要记录深度。

遇到一个(的时候,将深度+1,并且新的深度得分置为0,遇到一个)的时候,将深度的得分乘二并加到上一层的深度。

如果遇到的是(),那么只将得分加一。

Code

Python

class Solution:
	def scoreOfParentheses(self, s: str) -> int:
		stack = [0]
		for i in s:
			if i == '(':
				stack.append(0)
			else:
				v = stack.pop()
				stack[-1] += max(2 * v, 1)
		return stack.pop()

以上是关于LeetCode 算法 856. 括号的分数的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—856. 括号的分数(栈)—day03

Leetcode刷题100天—856. 括号的分数(栈)—day03

leetcode 856. 括号的分数(Score of Parentheses)

LeetCode 856 括号的分数[栈] HERODING的LeetCode之路

LeetCode 856 括号的分数[栈] HERODING的LeetCode之路

算法41----856. 括号的分数栈