资讯动态

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

发布时间:2026/10/10 15:37:18 来源:尧图企业网站定制
依旧栈的经典应用。题目链接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; }

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑