1.题目:https://leetcode-cn.com/problems/baseball-game/
2.思路
(1)观察样例可以发现
让我们在处理数据时保持栈上每个有效回合的值。栈是理想的,因为我们只处理涉及最后或倒数第二轮的操作。
(2)stoi():把数字字符串转换成int输出
3.代码
https://leetcode-cn.com/problems/baseball-game/solution/czhan-jie-fa-by-lygin/
https://leetcode-cn.com/problems/baseball-game/solution/bang-qiu-bi-sai-by-leetcode/
class Solution {
public:
int calPoints(vector& ops) {
stack nums;
int sum=0;
for (int i=0;i {
if (ops[i]=="C")
nums.pop();
else if (ops[i]=="D")
{
int numsD=nums.top()*2;
nums.push(numsD);
}
else if (ops[i]=="+")
{
int nums1=nums.top();
nums.pop();
int nums2=nums.top();
//nums.pop();//取出栈顶就可以了,不要接着pop,这样写的话,就不能全AC
int nums3=nums1+nums2;
nums.push(nums1);
//nums.push(nums2);
nums.push(nums3);
}
else
nums.push(stoi(ops[i]));
}
while (!nums.empty())
{
sum+=nums.top();
nums.pop();
}
return sum;
}
};
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net