前言
上了一天的课,好累,害,加油
题目
题解
源码
class Solution {
public int scoreOfParentheses(String S) {
// 方法1,栈
// Stack<Integer> stack =new Stack();
// stack.push(0);
// for (char c :S.toCharArray()){
// if(c=='('){
// stack.push(0);
// }else{
// int tmp1=stack.pop();
// int tmp2=stack.pop();
// stack.push(tmp2+= Math.max(2*tmp1,1));
// }
// }
// return stack.pop();
// 方法2,统计核心数目
int ans=0, dep=0;
for (int i=0;i<S.length();i++){
if (S.charAt(i)=='('){
dep++;
}else{
dep--;
if (S.charAt(i-1)=='('){
ans+=1<<dep;
}
}
}
return ans;
}
}
class Solution:
def scoreOfParentheses(self, S: str) -> int:
# 方法1 栈
# stack =[0]
# for c in S:
# if c=='(':
# stack.append(0)
# else:
# tmp=stack.pop()
# stack[-1] += max(2*tmp,1)
# return stack.pop()
# 方法2 统计核心数
ans,dep=0,0
for i in range(len(S)):
if S[i]=='(':
dep +=1
else:
dep -= 1
if S[i-1]=='(':
ans += 1<<dep
return ans