1106 排序
来源:互联网 发布:杭州小周seo 编辑:程序博客网 时间:2024/05/22 14:04
排序
Problem Description
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
Input
输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
Output
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。
Sample Input
0051231232050775
Sample Output
0 77 12312320
本来说做一道水题就睡觉,结果wa了好久…..
先附上AC代码:
#include<bits/stdc++.h>using namespace std;using LL =int64_t;int main(){ string temp; while(cin>>temp) { LL ans[1005]={0}; int cnt=0,flag=0; for(int i=0;i<temp.length();i++) { if(temp[i]!='5') { if(flag!=0) ans[cnt]*=10; ans[cnt]+=temp[i]-'0'; flag++; } else if(temp[i]=='5'&&i!=0&&temp[i-1]!='5'){ flag=0,cnt++; } if(i==temp.length()-1&&temp[i]!='5') cnt++; } sort(ans,ans+cnt); for(int i=0;i<=cnt-1;i++) { cout<<ans[i]; if(i!=cnt-1) cout<<" "; } cout<<endl; } return 0;}
很多次都是对cnt的边界判断失误,没有想到如果是555000或000555或050505或05050的情况,还有对5的判断,后来一想只要用一个vector就行了,只要不是5就push进去就好了
阅读全文
0 0
- 排序 1106
- 1106 排序
- 1106 排序
- 1106排序
- 1106 排序
- HDU 1106 排序
- HDOJ 1106 排序 [stable_sort]
- hdu 1106排序
- hdu 1106 排序
- hdu 1106 排序
- hdu-1106 排序
- 杭电1106 排序
- HDU-1106 排序
- HDU 1106 排序
- hdu 1106 排序
- hdu 1106 排序
- HDU 1106 排序
- HDU 1106 排序
- maven入门:mac IntelliJ IDEA 配置maven(三)
- 为什么Dialog不能用Application的Context
- 数据仓库模型的层级结构以及范式建模和维度建模
- 用Glide框架加载图片
- 责任链(职责链)模式简例[Chain of Responsibility]
- 1106 排序
- ButterKnife框架原理
- 51Nod 1432 独木舟
- 正则表达式语法
- *(a + i) = temp->data;、*(a + i) = temp->data;
- How To Install Visual Studio Code On Ubuntu
- dbmvlwgh
- The quiz 1 of Intro to Parallel Program
- 51Nod-2006-飞行员配对(二分图最大匹配)