编辑代码

#include <iostream>
using namespace std;

#define MAX_N 2001
int N;
char S[MAX_N + 1];

void solve();
int main() {
    cin >> N;
    for (int i = 0; i < N; i++) {
        cin >> S[i];
    }
    solve();
}

void solve() {
    // 剩余的字符串为 S[a], S[a + 1], ... , S[b]
    int a = 0, b = N - 1;

    while (a <= b) {
        // 将从左起字符串和右起字符串进行比较
        bool left = false;
        for (int i = 0; a + i <= b; i++) {
            if (S[a + i] < S[b - i]) { // S的开头 < S的结尾
                left = true;
                break;
            } else if (S[a + i] > S[b - i]) {
                left = false;
                break;
            }
        }
        if (left)   putchar(S[a++]); // 打印开头的字母 然后向后移动索引
        else    putchar(S[b--]);
    }

}