整数排序
2015-07-27 22:12
288 查看
实现输入一组大于等于0的整数,根据从小到大的顺序排序后输出,排序后有连续数时,只输出连续数中最小和最大的两个数
输入:
一组大于等于0的整数,不考虑非法输入,各个整数之间以逗号(“,”)分隔, 输入字符串的总长度小于等于100个字节。
输出:
排序后的值,各个整数之间以空格分隔。
样例输入: 1,4,3,110,2,90,7
样例输出: 1 4 7 90 110
输入:
一组大于等于0的整数,不考虑非法输入,各个整数之间以逗号(“,”)分隔, 输入字符串的总长度小于等于100个字节。
输出:
排序后的值,各个整数之间以空格分隔。
样例输入: 1,4,3,110,2,90,7
样例输出: 1 4 7 90 110
#include<iostream> #include<cstdio> #include<cstdlib> #include<vector> #include<algorithm> #include<string> #include<functional> #include<sstream> #include<set> //#include<cmath> using namespace std; int result[1000]; int main() { string str; getline(cin,str); for(int i=0;i<str.size();i++) { if(str[i]==',') { str[i]=' '; } } istringstream in(str); set<int> tempresult; int temp; while(in>>temp) { tempresult.insert(temp); } set<int>::iterator iter; int length=0; for(iter=tempresult.begin();iter!=tempresult.end();iter++) { result[length++]=*iter; } for(int i=0;i<length;)//游标指针向后移动 { if(result[i+1]-result[i]!=1) { cout<<result[i]<<' '; i++; } else { cout<<result[i]<<' ';//连续数的第一个数 while(result[i+1]-result[i]==1) { i++; } cout<<result[i]<<' ';//连续数的最后一个数 i++; } } return 0; }
相关文章推荐
- HashMap,LinkedHashMap,TreeMap的区别
- 一刀斩:SVN客户端访问URL失败--请求的名称有效,但是找不到请求的类型
- mysql 存储过程时间月份减法
- 内存管理
- php编程冒泡排序
- MyBatis知多少(20)MyBatis读取操作
- Tomcat服务器在Mac平台和windows平台上的搭建
- 莫比乌斯反演
- free delete malloc new(——高品质量程序设计指南第16章)
- 平衡二叉树
- cuDNN: efficient Primitives for Deep Learning 论文阅读笔记
- [3D游戏开发]Early ZBuffer
- UI中 View、Label的方法
- 产生冠军
- KnockoutJS的使用及分析
- HDU 1233 首字母变大写
- LeetCode Everyday --226
- Linux系统调用及用户编程接口(API)
- 程序员必读的六本书
- SCOI2009生日蛋糕