682. 棒球比赛
思路:用栈来保存数据,模拟每一个操作即可。注意负数的时候,第一个字符是’-’
class Solution {
public:
int calPoints(vector<string>& operations) {
vector<int> st;
for(auto op:operations){
if(op=="C"){
st.pop_back();
}else if(op=="D"){
int n=st.size();
st.push_back(st[n-1]*2);
}else if(op=="+"){
int n=st.size();
st.push_back(st[n-1]+st[n-2]);
}else{
int sum=0;
int flag=1;
int i=0;
if(op[i]=='-'){
flag=-1;
i++;
}
for(;i<op.size();i++){
sum=sum*10+op[i]-'0';
}
st.push_back(sum*flag);
}
}
int sum=0;
for(auto x:st){
sum+=x;
}
return sum;
}
};