输出一行数字,如果咱们把这行数字中的‘5’都看成空格,那么就失去一行用空格宰割的若干非负整数(可能有些整数以‘0’结尾,这些头部的‘0’应该被疏忽掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
你的工作是:对这些宰割失去的整数,依从小到大的程序排序输入。
输出
输出蕴含多组测试数据。每组输出数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。
输出数据保障:宰割失去的非负整数不会大于100000000,输出数据不可能全由‘5’组成。
输入
对于每个测试用例,输入宰割失去的整数排序的后果,相邻的两个整数之间用一个空格离开,每组输入占一行。
样例输出 Copy
0051231232050775
样例输入 Copy
0 77 12312320

代码示例(本人写的,只能过平台,不完满)

//#include <algorithm>//#include <iostream>//using namespace std;//#include <vector>//#include <stack>//#include <queue>//#include <cmath>//#include <string>//#include <string.h>////int main() {//    int t = 0;////    cin >> t;////    getchar();//    scanf("%d",&t);//    getchar();//当输出之后接着要输出字符(串)变量时,须要用getchar()吃掉下面输出之后的空格 //    while(t--){//        int k = 0;//        string str;//        getline(cin,str);//        for(int i = 0; i < str.size(); i++){//            if(str[i] == ' ' ){//                for(int j = i - 1; j >= k; j--){//                    cout << str[j];//                }//                cout << " ";//                k = i + 1;//            }    //        }//        for(int l = str.size() - 1; l >= k; l--){//            cout << str[l];//        }//        cout << endl;//    }//    return 0;//}

给的标程是这样的,能够参考一下

//#include<cstdio>//#include<cstring>//#include<algorithm>//using namespace std;//int main()//{//    char s[5005];//    int a[5005];//    int i,len,k,n;//    while(scanf("%s",s)!=EOF)//    {//        n=0;//        k=0;//        len=strlen(s);//        s[len]='5';   //        i=0;//        while(s[i]=='5'){//            i++;//        } //跳过前缀5,避免多输入0//        for(;i<=len;++i)//        {//            if(i>0&&s[i]=='5'&&s[i-1]=='5') //疏忽间断的5,避免多输入0//                continue;//            if(s[i]!='5'){//                k=k*10+s[i]-'0';//            } else{//                a[n]=k;//                n++;//                k=0;//            }//        }//        sort(a,a+n);//        printf("%d",a[0]);//        for(i=1;i<n;++i)//            printf(" %d",a[i]);//        printf("\n");//    }//    return 0;//}