From f35ecefd54a74b90f65742a231c5a113f7d19724 Mon Sep 17 00:00:00 2001 From: axbybgl <77483537+axbybgl@users.noreply.github.com> Date: Thu, 29 Sep 2022 10:51:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?Update=200150.=E9=80=86=E6=B3=A2=E5=85=B0?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E6=B1=82=E5=80=BC.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0150.逆波兰表达式求值.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/problems/0150.逆波兰表达式求值.md b/problems/0150.逆波兰表达式求值.md index 8107e4e0..257bbb9a 100644 --- a/problems/0150.逆波兰表达式求值.md +++ b/problems/0150.逆波兰表达式求值.md @@ -89,26 +89,32 @@ C++代码如下: class Solution { public: int evalRPN(vector& tokens) { - stack st; + // 考虑到第20个样例使用int会溢出 + // 此处使用long long来存储number + // 在最后用int()强行转换成int输出 + + stack st; for (int i = 0; i < tokens.size(); i++) { if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") { - int num1 = st.top(); + long long num1 = st.top(); st.pop(); - int num2 = st.top(); + long long num2 = st.top(); st.pop(); if (tokens[i] == "+") st.push(num2 + num1); if (tokens[i] == "-") st.push(num2 - num1); if (tokens[i] == "*") st.push(num2 * num1); if (tokens[i] == "/") st.push(num2 / num1); } else { - st.push(stoi(tokens[i])); + st.push(atoll(tokens[i].c_str())); } } - int result = st.top(); + + long long result = st.top(); st.pop(); // 把栈里最后一个元素弹出(其实不弹出也没事) - return result; + return int(result); } }; + ``` ## 题外话 From b0ec03922ea2081f0aa72e7fccf8a322aa9a9efb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98Carl?= Date: Sun, 2 Oct 2022 10:46:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?Update=200150.=E9=80=86=E6=B3=A2=E5=85=B0?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E6=B1=82=E5=80=BC.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 力扣修改了后端测试数据 --- problems/0150.逆波兰表达式求值.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/problems/0150.逆波兰表达式求值.md b/problems/0150.逆波兰表达式求值.md index 257bbb9a..a0ec5db3 100644 --- a/problems/0150.逆波兰表达式求值.md +++ b/problems/0150.逆波兰表达式求值.md @@ -89,10 +89,7 @@ C++代码如下: class Solution { public: int evalRPN(vector& tokens) { - // 考虑到第20个样例使用int会溢出 - // 此处使用long long来存储number - // 在最后用int()强行转换成int输出 - + // 力扣修改了后台测试数据,需要用longlong stack st; for (int i = 0; i < tokens.size(); i++) { if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") { @@ -105,13 +102,13 @@ public: if (tokens[i] == "*") st.push(num2 * num1); if (tokens[i] == "/") st.push(num2 / num1); } else { - st.push(atoll(tokens[i].c_str())); + st.push(stoll(tokens[i])); } } - long long result = st.top(); + int result = st.top(); st.pop(); // 把栈里最后一个元素弹出(其实不弹出也没事) - return int(result); + return result; } };