/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param tokens string字符串一维数组
* @param tokensLen int tokens数组长度
* @return int整型
*/
int count(int a, int b, char c) {
if (c == '+') {
return a + b;
} else if (c == '-') {
return a - b;
} else if (c == '*') {
return a * b;
} else if (c == '/') {
return a / b;
}
return 0;
}
int evalRPN(char** tokens, int tokensLen) {
// write code here
int i = 0;
int* start = (int*)malloc(sizeof(int) * tokensLen);
int top = 0;
int sum = 0;
for (i = 0; i < tokensLen; i++) {
if (strcmp(tokens[i], "+") == 0) {
sum = count(start[top - 2], start[top - 1], '+');
start[top - 2] = sum;
top--;
} else if (strcmp(tokens[i], "-") == 0) {
sum = count(start[top - 2], start[top - 1], '-');
start[top - 2] = sum;
top--;
} else if (strcmp(tokens[i], "*") == 0) {
sum = count(start[top - 2], start[top - 1], '*');
start[top - 2] = sum;
top--;
} else if (strcmp(tokens[i], "/") == 0) {
sum = count(start[top - 2], start[top - 1], '/');
start[top - 2] = sum;
top--;
} else {
sum = atoi(tokens[i]);
start[top] = sum;
top++;
}
}
return start[0];
}