题目描述:
代码解析:accumulate带有三个形参:头两个形参指定要累加的元素范围,第三个形参则是累加的初值。
代码:
class Solution {
public:
int calPoints(vector<string>& ops,vector<int>A={}) {
for(auto&op:ops){
auto N=static_cast<int>(A.size());
if (op=="C")A.pop_back();
else if(op=="D")A.push_back(2*A.back());
else if(op=="+")A.push_back(A[N-2]+A[N-1]);
else A.push_back(stoi(op));
}
return accumulate(A.begin(),A.end(),0);
}
};