Leetcode 682. 棒球比赛(简单模拟)

 注意一下:可能是负数/可能有多个数位,数字char - '0'才是数值

class Solution {
public:
    int getdigit(string s){     // 是数字则返回数字, 否则返回1e5
        bool f = (s[0] == '-'); // 负数标志
        if(f || isdigit(s[0])){
            int num = 0;
            for(int i = f; i < s.length(); i ++)
                num = num * 10 + s[i] - '0';  
            if(f)   num = num * (-1);
            return num;
        }
        return 1e5;
    }
    int calPoints(vector<string>& operations) {
        vector<int> s(1010, 0);
        int idx = -1;
        for(auto v: operations){
            char c = v[0];
            int numfg = getdigit(v);
            if(numfg != (int)1e5)  //s[++ idx] = (c - '0');   // idx 指向有效的那一个元素, -1表示没有元素×
                s[++ idx] = numfg;
            else if(c == 'C')   idx --;
            else if(c == 'D'){
                int t = s[idx] * 2;
                s[++ idx] = t;
            }else if(c == '+'){
                int t = s[idx] + s[idx - 1];
                s[++ idx] = t;
            }
        }cout << endl;
        int res = 0;
        for(int i = 0; i <= idx; i ++)  res += s[i];
        return res;
    }
};

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Ocean__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值