01排序
来源:互联网 发布:linux权限最大的账户 编辑:程序博客网 时间:2024/06/05 07:42
01排序
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:683 测试通过:251
总提交:683 测试通过:251
描述
将01串首先按长度排序,长度相同时,按1的个数多少进行排序,1的个数相同时再按ASCII码值排序。
输入
输入数据中含有一些01串,01串的长度不大于256个字符。
输出
重新排列01串的顺序。使得串按基本描述的方式排序。
样例输入
10011111
00001101
1010101
1
0
1100
样例输出
0
1
1100
1010101
00001101
10011111
题目来源
ZJUT
分析:简便的写法——运用sort & atoi函数
#include<iostream>using namespace std;#include<algorithm>#include<string>//01排序bool compare(string str1,string str2){int num1=0, num2=0;if(str1.length() != str2.length())return str1.length() < str2.length();else{for(int i=0;i<str1.length();i++)if(str1[i] == '1')num1++; for(int i=0;i<str2.length();i++)if(str2[i] == '1')num2++; if(num1 != num2)return num1 < num2;elsereturn atoi(str1.c_str()) < atoi(str2.c_str());}}int main(){string s[10000]; string tmp; int N = 0;while(cin>>tmp)s[N++] = tmp;sort(s, s+N, compare);for(int i=0;i<N;i++)cout<<s[i]<<endl;return 0;}
0 0
- 01排序
- 排序01
- 01排序
- 01排序
- 排序01:冒泡排序 选择排序 直接插入排序
- 排序算法01:选择排序
- 排序算法01:选择排序
- 10-排序-01-插入排序
- 排序算法01:冒泡排序
- 01_选择排序和冒泡排序
- 01串排序
- java实现01排序
- zjut_1204 01串排序
- 01串排序
- 01串排序
- 排序01无序数组
- hdu3466(排序+01背包)
- 3.14 01串排序
- 多态总结
- ubuntu12.04 安装android sdk /ndk/源码 编译环境
- 长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为X的元素
- C# WinForm开发系列 - ListBox/ListView/Panel
- 图像分割介绍
- 01排序
- 快速排序
- 错误解析->“cvCvtPixToPlane”: 找不到标识符
- 第八章 C++学习任务
- WebRequest 对象的使用
- orcad 16.3 DRC检查,元件C2都没连接,为什麼不报错
- tcp的三次握手过程
- 微炫彩社区功能上线 欢迎大家关注分享
- MPI并行程序的调试技巧