golang中怎么利用leetcode实现逆波兰式
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,今天就跟大家聊聊有关golang中怎么利用leetcode实现逆波兰式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。根据逆波兰表示法,求表达式
千家信息网最后更新 2025年12月03日golang中怎么利用leetcode实现逆波兰式
今天就跟大家聊聊有关golang中怎么利用leetcode实现逆波兰式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
根据逆波兰表示法,求表达式的值。
有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
说明:
整数除法只保留整数部分。
给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
示例 1:
输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = 9
示例 2:
输入: ["4", "13", "5", "/", "+"]输出: 6解释: (4 + (13 / 5)) = 6
示例 3:
输入: ["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
解题思路:
本题很简单,理解逆波兰式就ok
逆波兰式求解原理:
1,从左往右扫描token
2,如果式操作数,入栈
3,如果是操作符,弹出两个操作数
4,计算结果,将结果入栈
5,扫描完token,栈中,剩下结果,结果出栈
import "strconv"func evalRPN(tokens []string) int {var s stackfor i := 0; i < len(tokens); i++ {if !isOperator(tokens[i]) {s.Push(tokens[i])} else {op2 := s.Pop()op1 := s.Pop()res := eval(op1, op2, tokens[i])s.Push(fmt.Sprint(res))}}r := s.Pop()rv, _ := strconv.ParseInt(r, 10, 64)return int(rv)}func eval(op1 string, op2 string, token string) int64 {o1, _ := strconv.ParseInt(op1, 10, 64)o2, _ := strconv.ParseInt(op2, 10, 64)switch token {case "+":return o1 + o2case "-":return o1 - o2case "*":return o1 * o2case "/":return o1 / o2}return 0}func isOperator(token string) bool {return token == "+" || token == "-" || token == "*" || token == "/"}type stack struct {data []string}func (s *stack) Push(str string) {s.data = append(s.data, str)}func (s *stack) Pop() string {if len(s.data) < 1 {return ""}str := s.data[len(s.data)-1]s.data = s.data[:len(s.data)-1]return str}
看完上述内容,你们对golang中怎么利用leetcode实现逆波兰式有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
波兰
结果
表达式
有效
内容
整数
示例
解释
输入
输出
操作数
运算
两个
原理
对象
思路
总会
情况
换句话说
操作符
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库path
软件开发验收测试流程图
华为r228h服务器cmos
招聘在人才数据库遴选
mc服务器 地图
道闸电脑作为服务器原理
设备无法连接到服务器
军哥数据库
中国地图软件开发者
大话西游经典服务器
支付宝网络技术收费
中学生网络安全周
医生数据库
mysql数据库优势及优点
布里斯托大学网络安全专业
厦门软件开发的公司
交通银行总部软件开发中心
一核一g服务器
网络安全北信源中标
鸡西软件开发公司哪家好
手机网络安全顺口溜简短
增项软件开发
服务好的即时通讯软件开发
c 数据库架构设计
火山安卓软件开发加密狗破解
出服务器未系安全带
网络安全检查的自查报告
益阳天气预报软件开发
娄底游戏软件开发电话
ctf网络安全大赛真题