HDU1106排序
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
char num[1000];
int num1[1000];
while(cin>>num)
{ int flag = 0,len = 0,j=0;
for(int i = 0;;i++)
{ if(num[flag]!=0)
num1[i] = 0;
if(num[flag]==0)
break;
for(j =flag ; num[j] ;j++)
{
if(num[j]!='5')
{
num1[i] *= 10;
num1[i] += num[j]-48;
}
if(num[j] == '5')
{
if(j == 0)
i--;
if(num[j+1]!='5')
{
flag = j+1;
break;
}
}
}
len = i;
if(num[j] == 0)
break;
}
sort(num1,num1+len+1);
for(int i=0;i<len;i++)
cout<<num1[i]<<" ";
cout<<num1[len]<<endl;
}
return 0;
}
下面是一些输入输出案例:
5550
0
005525500
0 0 2
00255355
2 3