C语言 | Leetcode C语言题解之第227题基本计算题II

题目:

题解:

int calculate(char* s) {
    int n = strlen(s);
    int stk[n], top = 0;
    char preSign = '+';
    int num = 0;
    for (int i = 0; i < n; ++i) {
        if (isdigit(s[i])) {
            num = num * 10 + (int)(s[i] - '0');
        }
        if (!isdigit(s[i]) && s[i] != ' ' || i == n - 1) {
            switch (preSign) {
                case '+':
                    stk[top++] = num;
                    break;
                case '-':
                    stk[top++] = -num;
                    break;
                case '*':
                    stk[top - 1] *= num;
                    break;
                default:
                    stk[top - 1] /= num;
            }
            preSign = s[i];
            num = 0;
        }
    }
    int ret = 0;
    for (int i = 0; i < top; i++) {
        ret += stk[i];
    }
    return ret;
}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 23:34:05       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 23:34:05       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 23:34:05       57 阅读
  4. Python语言-面向对象

    2024-07-14 23:34:05       68 阅读

热门阅读

  1. Android Media Framework(十一)OMXNodeInstance - Ⅳ

    2024-07-14 23:34:05       24 阅读
  2. 基于matlab的深度学习案例及基础知识专栏前言

    2024-07-14 23:34:05       20 阅读
  3. C++ 桥接模式 (Bridge Pattern)

    2024-07-14 23:34:05       18 阅读
  4. liunx作业笔记1

    2024-07-14 23:34:05       19 阅读
  5. iOS热门面试题(二)

    2024-07-14 23:34:05       19 阅读
  6. python-程序结构

    2024-07-14 23:34:05       22 阅读
  7. Redis无感升级配置

    2024-07-14 23:34:05       20 阅读
  8. GitHub每周最火火火项目(7.8-7.14)

    2024-07-14 23:34:05       20 阅读