码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode_682-Baseball Game

时间:2019-09-30 19:57:21      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:tac   for   面试技巧   无效   turn   str   pre   5*   cto   

给定一个字符串列表,字符串包含整数,’+’,’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

标签:tac   for   面试技巧   无效   turn   str   pre   5*   cto   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!