首页 > 其他 > 详细

LeetCode_682-Baseball Game

时间:2019-09-30 20:00:54      阅读:77      评论:0      收藏:0      [点我收藏+]

给定一个字符串列表,字符串包含整数,’+’,’D’,’C’,整数代表一个分数,’+’代表后两个有效分数的和,’D’代表后一个有效分数的两倍,’C’代表删除后一个有效的分数值,最后求所有有效分数的和。
例子:
输入[“5”,”2”,”C”,”D”,”+”],输出30。2为无效的数,’D’是5*2,’+’是5*2+5,5+0+10+(10+5)= 30

class Solution {
public:
    int calPoints(vector<string>& ops) {
        stack<int> stackRes;
        for(int i=0; i<ops.size(); i++) {
            if(ops[i][0] == C) {
                if(!stackRes.empty()) {
                    stackRes.pop();
                }
            }
            else if(ops[i][0] == D) {
                if(!stackRes.empty()) {
                    int nNum = stackRes.top();
                    nNum *= 2;
                    stackRes.push(nNum);
                }
            }
            else if(ops[i][0] == +) {
                if(!stackRes.empty()) {
                    int nNum = stackRes.top();
                    stackRes.pop();
                    int nSum = nNum + stackRes.top();
                    stackRes.push(nNum);
                    stackRes.push(nSum);
                }
            }
            else {
                stackRes.push(atoi(ops[i].c_str()));
            }
        }
        int nResRum = 0;
        while(!stackRes.empty()) {
            nResRum += stackRes.top();
            stackRes.pop();
        }
        return nResRum;
    }
};

技术分享图片

可关注公众号了解更多的面试技巧

LeetCode_682-Baseball Game

原文:https://www.cnblogs.com/yew0/p/11613927.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!