首页 > 其他分享 >【栈】LeetCode 856. 括号的分数

【栈】LeetCode 856. 括号的分数

时间:2023-02-28 15:24:19浏览次数:49  
标签:分数 856 int 我们 括号 result LeetCode

题目链接

856. 括号的分数

思路

我们通过观察发现,() 是唯一贡献分数的结构,外括号只是为该结构添加了一些乘数。所以我们只需要关心 ()

我们用 ddd 维护当前括号的深度,对于每个 ( 我们将深度加一,对于每个 ),我们将深度减一。当我们遇到 () 时,我们将 \(2^d\) 加到答案中。

我们举个实际的例子,以 (()(())) 为例,我们首先找到内部两个闭合括号 (),然后将分数加上对应的 \(2^d\)。实际上,我们是在计算 (()) + ((())) 的分数。

代码

class Solution {
    public int scoreOfParentheses(String s) {
        int result = 0;
        int d = 0;

        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) == '('){
                d++;
            }else{
                d--;
                if(s.charAt(i - 1) == '('){
                    result += 1 << d;
                }
            }
        }

        return result;
    }
}

标签:分数,856,int,我们,括号,result,LeetCode
From: https://www.cnblogs.com/shixuanliu/p/17164366.html

相关文章

  • 【DFS】LeetCode 22. 括号生成
    题目链接22.括号生成思路使用DFS和贪心的思想,如果左括号的数量不够就优先放置左括号,然后再放置右括号。代码classSolution{privateList<String>result=......
  • leetcode之——二分法模板
    classSolution:defsearch(self,nums:List[int],target:int)->int:n=len(nums)left,right=0,n-1whileleft<=right:k=(right-left)//2+left......
  • LeetCode算法训练-回溯 491.递增子序列 46.全排列 47.全排列 II
    欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-回溯491.递增子序列46.全排列47.全排列IILeetCode491.递增子序列分析找出并返回所有数组中不同的递增子序列......
  • LeetCode/2.两数相加
    给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和......
  • LeetCode算法训练 93.复原IP地址 78.子集 90.子集II
    欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练93.复原IP地址78.子集90.子集IILeetCode93.复原IP地址分析字符串全部由数字组成,ipv4每一段数字不能有前导0,且......
  • leetcode-1024-easy
    DivisorGameAliceandBobtaketurnsplayingagame,withAlicestartingfirst.Initially,thereisanumbernonthechalkboard.Oneachplayer'sturn,that......
  • leetcode-1037-easy
    ValidBoomerangGivenanarraypointswherepoints[i]=[xi,yi]representsapointontheX-Yplane,returntrueifthesepointsareaboomerang.Aboomerang......
  • 关于带括号类函数或公式的提取问题
    在进行表达式分析时,我们会遇到类似这样的语句:b*Avg(a*3,b/6,c+8,e+f*(-(g/(h-i)))*j),经过分析,Avg(...)里,括号内有以逗号分隔的多个表达式,则涉及到括号配对的问题。这里利用......
  • 【LeetCode二叉树#10】从中序与后序遍历序列构造二叉树
    力扣题目链接(opensnewwindow)根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历inorder=[9,3,15,20,7]后序遍......
  • #yyds干货盘点# LeetCode面试题:串联所有单词的子串
    1.简述:给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串长度相同。 s 中的串联子串是指一个包含 words 中所有字符串以任意顺序排列连接起来的......