题目链接:FZU 2135 数字游戏
排序后有零的话零一定在开头,所以记录一下零的个数,输出时遇到前缀零不输出,之后有非零时输出这个数,然后把所有零插入这里输出。
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int MAX_N = 100 + 10;
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int n, cnt = 0;
char str[MAX_N];
scanf("%d", &n);
scanf("%s", str);
for(int i = 0; i < n; i++)
if(str[i] == '0')
cnt++;
sort(str, str + n);
bool first = false;
for(int i = 0; i < n; i++)
{
if(str[i] != '0' && !first)
{
first = true;
printf("%c", str[i]);
for(int j = 0; j < cnt; j++)
printf("0");
}
else if(first)
printf("%c", str[i]);
}
puts("");
}
return 0;
}