当前位置: 首页 > news >正文

leetcode刷题日记——逆波兰表达式求值

[ 题目描述 ]:
在这里插入图片描述
[ 思路 ]:

  • 借助栈的特性,遇见数字就将这个数压入栈内,遇见符号,就从栈中弹出两个数,进行相应的运算,然后将结果压入栈中
  • 运行如下
    在这里插入图片描述
int evalRPN(char** tokens, int tokensSize) {int* stack = (int*)malloc(sizeof(int) * tokensSize);int top = -1;for (int i = 0; i < tokensSize; i++) {if (strcmp(tokens[i], "*") == 0) {int a = stack[top--];int b = stack[top--];stack[++top] = b * a;} else if (strcmp(tokens[i], "+") == 0) {int a = stack[top--];int b = stack[top--];stack[++top] = b + a;} else if (strcmp(tokens[i], "-") == 0) {int a = stack[top--];int b = stack[top--];stack[++top] = b - a; } else if (strcmp(tokens[i], "/") == 0) {int a = stack[top--];int b = stack[top--];stack[++top] = b / a; } else {int num = 0;int sign = 1;int j = 0;if (tokens[i][0] == '-') {sign = -1;j = 1;}for (; tokens[i][j] != '\0'; j++) {num = num * 10 + (tokens[i][j] - '0');}stack[++top] = num * sign;}}int result = stack[top];free(stack);return result;
}

[ 官方题解 ]:

  • 方法一:栈,思路基本同上
  • 方法二:数组模拟栈,即,上述操作

相关文章:

  • 如何用WordPress AI插件自动生成SEO文章,提升网站流量?
  • 开源免费!AI视频分析神器,智能识别画面,1秒提取关键帧!附详细教程
  • 反转链表.
  • G1垃圾回收器中YoungGC和MixedGC的区别
  • 【ESP32-IDF笔记】20-配置以太网网络(W5500)
  • linux离线部署open-metadata
  • kotlin与MVVM结合使用总结(三)
  • 13.ArkUI Navigation的介绍和使用
  • SIEMENS PLC程序解读 -Serialize(序列化)SCATTER_BLK(数据分散)
  • 关于位运算的一些小记
  • 速成GO访问sql,个人笔记
  • AI之FastAPI+ollama调用嵌入模型OllamaBgeEmbeddings
  • 用 ESP32 模拟 Wiegand 刷卡器:开发门禁系统必备的小工具
  • C++入门小馆: 深入了解STLlist
  • 【金仓数据库征文】-不懂数据库也能看懂!一文解析金仓技术介绍以典型应用
  • 电子病历高质量语料库构建方法与架构项目(数据遗忘篇)
  • Redis 集群切片全解析:四种常见技术的原理、优劣与应用
  • 【MQ篇】RabbitMQ的消费者确认机制实战!
  • HTML word属性
  • 文档驱动:“提纲挈领”视角下的项目管理中枢构建
  • 湖南新宁一矿厂排水管破裂,尾砂及积水泄漏至河流,当地回应
  • 美航母撞船后又遇战机坠海,专家:长时间作战部署疲于奔命是主因
  • 浙商银行外部监事高强无法履职:已被查,曾任建行浙江省分行行长
  • 中办、国办印发《安全生产考核巡查办法》
  • 习近平就伊朗发生严重爆炸事件向伊朗总统佩泽希齐扬致慰问电
  • 王毅:为改革完善全球治理作出金砖贡献