个人网站建设课程介绍,网站建设动态代码,苏州园区一站式服务中心,wordpress 更好 知乎提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 目录 前言
一、题目-逆波兰表达式求值
1.题目描述
2.思路与代码
2.1 思路
2.2 代码
总结 前言
提示#xff1a;这里可以添加本文要记录的大概内容#xff1a;
4月5… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 目录 前言
一、题目-逆波兰表达式求值
1.题目描述
2.思路与代码
2.1 思路
2.2 代码
总结 前言
提示这里可以添加本文要记录的大概内容
4月5日练习内容 提示以下是本篇文章正文内容下面案例可供参考
一、题目-逆波兰表达式求值
1.题目描述
给你一个字符串数组 tokens 表示一个根据 逆波兰表示法 表示的算术表达式。
请你计算该表达式。返回一个表示表达式值的整数。
注意
有效的算符为 、-、* 和 / 。 每个操作数运算对象都可以是一个整数或者另一个表达式。 两个整数之间的除法总是 向零截断 。 表达式中不含除零运算。 输入是一个根据逆波兰表示法表示的算术表达式。 答案及所有中间计算结果可以用 32 位 整数表示。示例 1 输入tokens [2,1,,3,*] 输出9 解释该算式转化为常见的中缀算术表达式为((2 1) * 3) 9 示例 2 输入tokens [4,13,5,/,] 输出6 解释该算式转化为常见的中缀算术表达式为(4 (13 / 5)) 6 示例 3 输入tokens [10,6,9,3,,-11,*,/,*,17,,5,] 输出22 解释该算式转化为常见的中缀算术表达式为 ((10 * (6 / ((9 3) * -11))) 17) 5 ((10 * (6 / (12 * -11))) 17) 5 ((10 * (6 / -132)) 17) 5 ((10 * 0) 17) 5 (0 17) 5 17 5 22 来源力扣LeetCode 链接https://leetcode.cn/problems/evaluate-reverse-polish-notation 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2.思路与代码
2.1 思路
1.本题使用栈来解决
2.遍历字符数组如果遇到运算符则将元素出栈进行运算并将结果重新入栈
3.如果不是运算符则将其入栈
4.遍历完字符串将最终结果出栈并输出
2.2 代码
代码如下示例
class Solution {public int evalRPN(String[] tokens) {//创建一个栈StackInteger stack new Stack();//遍历字符串for(String str : tokens){//运算数Integer i1;Integer i2;Integer result;//switch结构switch(str){case ://如果是号则//出栈i1 stack.pop();i2 stack.pop();//计算结果result i1 i2;//将结果入栈stack.push(result);break;case -://如果是-号则//出栈i1 stack.pop();i2 stack.pop();//计算结果result i2 - i1;//将结果入栈stack.push(result);break;case *://如果是*号则//出栈i1 stack.pop();i2 stack.pop();//计算结果result i1 * i2;//将结果入栈stack.push(result);break;case /://如果是/号则//出栈i1 stack.pop();i2 stack.pop();//计算结果result i2 / i1;//将结果入栈stack.push(result);break;default://不是运算符则入栈stack.push(Integer.parseInt(str));}}//将最后结果出栈Integer result stack.pop();return result;}
} 总结
提示这里对文章进行总结