c++ - Leetcode 上逆波兰符号问题的测试用例的错误答案
问题描述
输入是字符串向量的格式。
这是我得到错误答案的测试用例:
["10","6","9","3","+","-11","*","/","*","17","+","5","+"]
预期的答案是22
,但输出是23
。
结果在我的 IDE 上是一样的。
我遵循的方法是:
- 如果字符串是运算符,则从堆栈中弹出最后两个元素并将其结果压入堆栈(我不检查堆栈是否为空,因为他们在问题陈述中提到输入将始终有效)。
- 否则将数字压入堆栈。
问题链接:https ://leetcode.com/problems/evaluate-reverse-polish-notation/
代码:
class Solution {
public:
int evalRPN(vector<string>& A) {
stack<int> s;
int i = 0;
while(i<A.size())
{
string num = A[i];
if(num=="+" || num=="-" || num=="*" || num=="/")
{
int num2 = s.top();
s.pop();
int num1 = s.top();
s.pop();
if(num=="+")
{
s.push(num1+num2);
}else if(num=="-")
{
s.push(num1-num2);
}else if(num=="*")
{
s.push(num1*num2);
}else if(num=="/")
{
int ans = num1/num2;
s.push(trunc(ans));
}
}else
{
int j = 0;
int ans = 0;
string numx = A[i];
while(j<numx.length())
{
ans += (ans * 10)+(numx[j]-48);
j++;
}
s.push(ans);
}
i++;
}
int ans = s.top();
return ans;
}
};
解决方案
推荐阅读
- html - 如何使 wow fadeInUp 与溢出一起工作:滚动
- botframework - 如何编写一个机器人来遍历 xml json 对象?
- c# - xamarin 表单:无法绑定数据
- ios - 如何使用 ios ShareExtension 同时获取带有图像的 url?
- html - 通过 Databricks 上传到 Azure Blob 存储时设置内容类型
- python - 我如何通过 id 获得 2 个 TextInput 值
- formatting - Tmux pad 格式字符串
- python - 带有 finditer 的 Python 多行正则表达式组仅返回最后一个匹配项
- c# - Unity 键盘控制(按下 C# 脚本中的一个键)
- javascript - 有没有办法在单击对象之前将 window.onbeforeunload 设置为 null?