Leetcode 682. 棒球比赛 解题思路及C++实现
生活随笔
收集整理的这篇文章主要介绍了
Leetcode 682. 棒球比赛 解题思路及C++实现
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
解题思路:
这道题比较简单,就是直接用一个stack,依次处理输入容器中的每一个字符串,要注意的是:将string转为int,C++中函数为stoi();
class Solution { public:int calPoints(vector<string>& ops) {int res = 0; //一定要初始化为0stack<int> s;for(auto x: ops){if(x == "C" && !s.empty()) s.pop();else if(x == "D" && !s.empty())s.push(s.top() * 2);else if(x == "+" && !s.empty()){int tmp1 = s.top();s.pop();int tmp2 = tmp1;if(!s.empty()){tmp2 += s.top();}s.push(tmp1);s.push(tmp2);}else s.push(stoi(x)); //需要将string转为int}//接下来逐个访问栈中的元素,得到总分while(!s.empty()){res += s.top();s.pop();}return res;} };
总结
以上是生活随笔为你收集整理的Leetcode 682. 棒球比赛 解题思路及C++实现的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: LeetCode 496. 下一个更大元
- 下一篇: Leetcode 844. 比较含退格的