/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @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];
}