【
实现一个基本的计算器来计算一个简单的字符串表达式的值。
字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。
示例 1:
输入: "3+2*2"
输出: 7
示例 2:
输入: " 3/2 "
输出: 1
示例 3:
输入: " 3+5 / 2 "
输出: 5
说明:
你可以假设所给定的表达式都是有效的。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/basic-calculator-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
】
表达式的计算,一般都考虑栈,此题便是。
加减其实是一类操作,减一个数便是加上一个数的负数。乘除优先级高,可以立即操作。
最后把所有栈里面数相加便是表达式结果了。
int calculate(char * s){
int i;
long long num = 0;
int len = strlen(s);
long long stack[809600] = {0};
int index = 0;
int tmp;
char sign = '+';
int sum = 0;
for (i = 0; i < len; i++) {
if (s[i] >= '0'