#3780. [GESP202503 六级 C++] 第 12 题

[GESP202503 六级 C++] 第 12 题

以下代码用于生成 nn 位格雷编码。横线上应填写( )。

vector<string> generateGrayCode(int n) {
    if (n == 0) return {"0"};
    if (n == 1) return {"0", "1"};

    vector<string> prev = generateGrayCode(n - 1);
    vector<string> result;

    for (string s : prev) {
        result.push_back("0" + s); // 在前缀添加 0
    }
    for (int i = prev.size() - 1; i >= 0; i--) {
        ________________ // 在此处填入代码
    }
    return result;
}

{{ select(1) }}

  • result.push_back("1" + prev[i]);
  • result.push_back("0" + prev[i]);
  • result.push_back(prev[i] + "1");
  • result.push_back(prev[i] + "0");