C语言 | Leetcode C语言题解之第224题基本计算器

题目:

题解:

int calculate(char* s) {
    int n = strlen(s);
    int ops[n], top = 0;
    int sign = 1;
    ops[top++] = sign;

    int ret = 0;
    int i = 0;
    while (i < n) {
        if (s[i] == ' ') {
            i++;
        } else if (s[i] == '+') {
            sign = ops[top - 1];
            i++;
        } else if (s[i] == '-') {
            sign = -ops[top - 1];
            i++;
        } else if (s[i] == '(') {
            ops[top++] = sign;
            i++;
        } else if (s[i] == ')') {
            top--;
            i++;
        } else {
            long num = 0;
            while (i < n && s[i] >= '0' && s[i] <= '9') {
                num = num * 10 + s[i] - '0';
                i++;
            }
            ret += sign * num;
        }
    }
    return ret;
}

相关推荐

最近更新

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

    2024-07-14 05:10:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 05:10:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 05:10:01       58 阅读
  4. Python语言-面向对象

    2024-07-14 05:10:01       69 阅读

热门阅读

  1. C语言实现数据结构B树

    2024-07-14 05:10:01       26 阅读
  2. 前端热门面试题二

    2024-07-14 05:10:01       25 阅读
  3. 使用 git 和 GitHub 互动

    2024-07-14 05:10:01       21 阅读
  4. MySQL入门学习-深入索引.匹配顺序

    2024-07-14 05:10:01       23 阅读
  5. C#—Json序列化和反序列化

    2024-07-14 05:10:01       20 阅读
  6. 探索 `DatagramSocket` 类

    2024-07-14 05:10:01       31 阅读
  7. 5. 最长回文子串

    2024-07-14 05:10:01       24 阅读
  8. SQLServer设置端口

    2024-07-14 05:10:01       23 阅读
  9. webpack terser-webpack-plugin 不打包注释及log

    2024-07-14 05:10:01       25 阅读
  10. Cesium中创建局部坐标系

    2024-07-14 05:10:01       26 阅读
  11. PostgreSQL的pg_dirtyread工具

    2024-07-14 05:10:01       23 阅读
  12. 怎样把pptx课件转换成word文档

    2024-07-14 05:10:01       26 阅读
  13. Github 2024-07-13 Rust开源项目日报 Top10

    2024-07-14 05:10:01       25 阅读