这个我是用递归a的,代码如下: string s1 = "down"; string s2 = "up"; void solve(int pre, int k, int cnt, int &n, vector<string> &ans) {     if (cnt >= n + 1) return;     ans[(k + pre) / 2] = s1;     ans[(k - pre + 1) / 2 + k] = s2;     solve(pre, (k + pre) / 2, cnt + 1, n, ans);     solve(k, (k - pre + 1) / 2 + k, cnt + 1, n, ans);     return; } vector<string> problem(int n) {     // write code here     int num = 1;     for (int i = 0; i < n; ++i)         num *= 2;     num--;     vector<string> ans(num);     ans[num / 2] = s1;     solve(0, num / 2, 2, n, ans);     return ans; }