public int scoreOfParentheses(String s) {
int score = 0;
int count = 0;
int len = s.length();
for (int i=0;i<len;i++){
char c = s.charAt(i);
if(c=='(') count++;
else {
count--;
if(s.charAt(i-1)=='(') score += 1<<count;
}
}
return score;
}
这道题我做了很久,没有做出来,然后我就放弃自力更生的想法,去看了一下别人的题解。当我认真了解了别人的思路的时候,我发现了自己做不出来的原因:
- 我没弄清楚什么时候应该进行加法
除了上面这个,这道题考查的重点应该在于栈的思想。
对的,思想,我本来想着一个个进栈、推栈,然后再获取栈的大小。但是转念一想,其实我需要的是什么?我需要的仅仅是栈的大小,既然如此那我直接计算大小不就可以了吗?所以,了解栈固然重要,但是它的思想也正是精华所在。