题目描述:
思路:使用栈,记录每回合的分数,然后再把栈里面的分数求和,既得总分数
代码如下:
class Solution {
public:
int calPoints(vector<string>& ops) {
stack<int>num;
int sum=0;
for(int i=0;i<ops.size();i++){
if(ops[i]=="+"){
int a=num.top();
num.pop();
int b=num.top();
num.push(a);
num.push(a+b);
}
if(ops[i]=="C"){
num.pop();
}
if(ops[i]=="D"){
int c=num.top();
num.push(2*c);
}
if(ops[i]!="+"&&ops[i]!="C"&&ops[i]!="D"){
num.push(stoi(ops[i]));
}
}
while(!num.empty()){
sum+=num.top();
num.pop();
}
return sum;
}
};