news 2026/5/4 13:48:43

算法训练营第二十一天| 227. 基本计算器 II

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法训练营第二十一天| 227. 基本计算器 II

依旧栈的经典应用。

题目链接:https://leetcode.cn/problems/basic-calculator-ii/description/

优秀题解:https://leetcode.cn/problems/basic-calculator-ii/solutions/91271/chai-jie-fu-za-wen-ti-shi-xian-yi-ge-wan-zheng-ji-/

解题思路:

使用栈来处理运算符优先级。乘除立即计算,加减先压入栈,最后处理栈中剩余加减运算。

代码实现实例
int calculate(char* s) { int len = strlen(s); int* stack = (int*)malloc(len * sizeof(int)); int top = -1; int num = 0; char sign = '+'; for (int i = 0; i < len; i++) { if (isdigit(s[i])) { num = num * 10 + (s[i] - '0'); } if ((!isdigit(s[i]) && s[i] != ' ') || i == len - 1) { if (sign == '+') { stack[++top] = num; } else if (sign == '-') { stack[++top] = -num; } else if (sign == '*') { stack[top] *= num; } else if (sign == '/') { stack[top] /= num; } sign = s[i]; num = 0; } } int result = 0; while (top != -1) { result += stack[top--]; } free(stack); return result; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 13:47:36

Linux内核开发者视角:拆解cfg80211与mac80211如何协同驱动你的WiFi网卡

Linux无线子系统深度解析&#xff1a;cfg80211与mac80211协同架构与驱动开发实战 引言 在Linux内核的无线网络子系统中&#xff0c;cfg80211和mac80211的协同工作机制一直是驱动开发者必须掌握的核心知识。这套架构不仅支撑着现代WiFi设备的全功能实现&#xff0c;更是开源无线…

作者头像 李华
网站建设 2026/5/4 13:47:32

从监控到Vlog:OpenCV+DNN实战,5步搞定智能视频场景分割

智能视频分割实战&#xff1a;5步实现从监控到Vlog的跨场景应用 视频内容创作正经历一场技术驱动的变革。想象一下&#xff0c;你刚拍摄的旅行Vlog可以自动分离出人物与背景&#xff0c;一键替换成异国风情的场景&#xff1b;或是你的家庭监控系统能精准识别宠物活动区域&#…

作者头像 李华
网站建设 2026/5/4 13:44:32

YOLO火焰/烟雾检测系统

YOLO火焰/烟雾检测系统 1. 软件概述 本软件基于 YOLOv8/v11/v26 深度学习模型&#xff0c;提供了一个简洁美观的图形界面&#xff0c;用于对图片和视频中的火焰&#xff08;Fire&#xff09;与烟雾&#xff08;Smoke&#xff09;目标进行智能检测。支持实时显示检测结果、保存…

作者头像 李华