博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 856. Score of Parentheses
阅读量:5086 次
发布时间:2019-06-13

本文共 1322 字,大约阅读时间需要 4 分钟。

Given a balanced parentheses string S, compute the score of the string based on the following rule:

() has score 1AB has score A + B, where A and B are balanced parentheses strings.(A) has score 2 * A, where A is a balanced parentheses string.
Example 1:Input: "()"Output: 1Example 2:Input: "(())"Output: 2Example 3:Input: "()()"Output: 2Example 4:Input: "(()(()))"Output: 6Note:S is a balanced parentheses string, containing only ( and ).2 <= S.length <= 50

对于当前字符,如果是'('记录他的位置,如果是')'

有两种状态,要么是() 要么是(()) 所以用个数组去维护与)对应的(之间的数的和。具体见代码

class Solution {public:    int scoreOfParentheses(string S) {        int s[55] = {0};        vector
v(55, 0); int top = 0; int left = 0; int sum = 0; for (int i = 1; i < S.size(); ++i) { if (S[i] == '(') s[++top] = i; else { left = s[top--]; if (left == i-1) { v[i] = 1; } else { sum = 0; for (int j = left; j < i; ++j) { sum += v[j]; v[j] = 0; } v[i] = 2*sum; } } } return accumulate(v.begin(), v.end(), 0); }};

转载于:https://www.cnblogs.com/pk28/p/9220501.html

你可能感兴趣的文章
STL容器之vector
查看>>
数据中心虚拟化技术
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>