输出一行数字,如果咱们把这行数字中的‘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;//}