1 条题解

  • 0
    @ 2020-6-20 23:01:15

    【深基6.习7】语句解析

    解题思路

    三个变量初始为 0。每条赋值语句格式固定为 5 字符,取第一个字符确定左值,第 4 个字符确定右值是数字还是变量,按顺序赋值。

    正确性说明

    顺序解释语句使数组始终对应执行到当前位置的变量值;右侧取当前值,符合赋值语义。

    易错点

    变量初始值为 0;a:=b 是复制当前值,不建立永久关联。

    复杂度

    语句总长 L,时间 O(L),空间 O(L)。

    参考代码(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        string s, t;
        while (cin >> t)
            s += t;
        int v[3] = {};
        for (size_t i = 0; i + 4 < s.size(); i += 5) {
            char c = s[i + 3];
            int val = (c >= '0' && c <= '9') ? c - '0' : v[c - 'a'];
            v[s[i] - 'a'] = val;
        }
        cout << v[0] << " " << v[1] << " " << v[2] << "\n";
        return 0;
    }
    
    • 1

    信息

    ID
    114
    时间
    1000ms
    内存
    125MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者