以下代码用于生成 $n$ 位格雷编码。横线上应填写( )。
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;
}根据上下文和C++语法规则确定空缺处应填的内容,关注函数调用参数、表达式和返回值类型。
填空时注意语法完整性:分号、括号匹配、函数参数类型和个数、返回值类型。
【考点】递归(递推构造格雷码)|字符串拼接|格雷码构造规则
GESP 六级「递归与回溯」模块。命题人专门卡住那些「背过格雷码但没真理解构造规则」的考生——六级要求能独立设计递推方案,这道题就是看你是否掌握了格雷码的核心生成法则。