题目来源:《挑战程序设计竞赛》2.2
#include<iostream>
using namespace std;
char T[20], S[20];
void solve(int n)
{
int count = 0;
bool flag = true;
int left = 0, right = n - 1;
while (left <= right)
{
for (int i = 0; i <= (right - left) / 2; i++)
{
if (S[left + i] < S[right + i])
{
flag = true;
break;
}
if (S[left + i] > S[right + i])
{
flag = false;
break;
}
}
if (flag)
{
T[count++] = S[left];
left++;
}
else
{
T[count++] = S[right];
right--;
}
}
T[count] = '\0';
}
int main()
{
int n;
cout << "请输入字符串长度" << endl;
cin >> n;
cout << "请输入字符串" << endl;
cin >> S;
solve(n);
cout << T;
return 0;
}