top1编程
← 返回题目
题解

【基础】表达式的值

1 条题解

  • 0
    @ 2026-7-31 5:01:53

    解题思路

    题目要求计算只含 + 的表达式。从左到右扫描,遇到数字就拼接到当前数字后面,遇到 + 就把当前数字加到结果中。

    参考代码

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main() {
        string s;
        cin >> s;
    
        int ans = 0, num = 0;
        for (int i = 0; i < s.size(); i++) {
            if (s[i] >= '0' && s[i] <= '9') {
                num = num * 10 + (s[i] - '0');
            } else {
                ans += num;
                num = 0;
            }
        }
        ans += num;
        cout << ans << endl;
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:O(N)
    • 空间复杂度:O(1)
    • 1