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