比赛描写叙述:

将01串首先按长度排序。长度同样时。按1的个数多少进行排序,1的个数同样时再按ASCII码值排序。

输入:

输入数据中含有一些01串,01串的长度不大于256个字符。

输出:

又一次排列01串的顺序。使得串按基本描写叙述的方式排序。

例子输入:

10011111

00001101

1010101

1

0

1100

例子输出:

0

1

1100

1010101

00001101

10011111

被AC的代码例如以下:

import java.util.Arrays;
import java.util.Scanner; public class Main {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String[] str = new String[256];
int i=0;
while(sc.hasNextLine())
{
String inStr = sc.nextLine();
if(inStr.equals(""))
{
break;
}
str[i++]=inStr;
}
for(int j=0;j<i;j++)
{
for(int y=0;y<i-j-1;y++)
{
if(cmpStr(str[y],str[y+1])==1)
{
String temp = str[y+1];
str[y+1] = str[y];
str[y] = temp;
}
}
}
for(int j=0;j<i;j++)
{
System.out.println(str[j]);
}
}
private static int cmpStr(String s,String t)
{
if(s.length()<t.length())
{
return -1;
}
if(s.length()>t.length())
{
return 1;
}
if(s.length()==t.length())
{
if(NumOfOne(s)<NumOfOne(t))
{
return -1;
}else if(NumOfOne(s)>NumOfOne(t))
{
return 1;
}else
{
for(int m=0;m<s.length();m++)
{
if(s.charAt(m)>t.charAt(m))
{
return 1;
}else if(s.charAt(m)<t.charAt(m))
{
return -1;
}else
{
return 0;
}
}
}
}
return 0;
}
private static int NumOfOne(String s)
{
if(s==null||s.length()==0)
{
return 0;
}
int sum=0;
for(int i=0;i<s.length();i++)
{
if(s.charAt(i)=='1')
{
sum++;
}
}
return sum;
}
}

01排序的Java实现的更多相关文章

  1. ACM——01排序

    http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1024 01排序 时间限制(普通/Jav ...

  2. Spark基础排序+二次排序(java+scala)

    1.基础排序算法 sc.textFile()).reduceByKey(_+_,).map(pair=>(pair._2,pair._1)).sortByKey(false).map(pair= ...

  3. 几种经典的数据排序及其Java实现

    选择排序 思想 n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空. ②第1趟排序 在无序区R[1..n]中选出关键字最小的记录R[k ...

  4. 专题 查找与排序的Java代码实现(一)

    专题 查找与排序的Java代码实现(一) 查找(Searching) 线性查找(linear search) 属于无序查找算法,适合于存储结构为顺序存储或链接存储的线性表. 基本思想:从数据结构线形表 ...

  5. 程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现)

    http://blog.csdn.net/pzhtpf/article/details/7559896 程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现) 程序员必知的8大 ...

  6. 希尔排序之Java实现

    希尔排序之Java实现 一.方法一 package cn.com.zfc.lesson21.sort; /** * * @title ShellSort * @describe 希尔排序 1959 年 ...

  7. 选择排序之Java实现

    选择排序之Java实现 一.方法一 package cn.com.zfc.lesson21.sort; /** * * @title SelectSort * @describe 选择排序 * @au ...

  8. 十大经典排序【Java实现,手工作坊式】

    终于把排序这个硬骨头,但是又很基础的知识点,自己手撕了一遍!之前,使用Python看着算法导论的书手撕过一遍,印象不是很深刻,容易忘记!好记性不如烂笔头!多自己思考解决问题 1,交换类CAS[最简单] ...

  9. POJ题目排序的Java程序

    POJ 排序的思想就是根据选取范围的题目的totalSubmittedNumber和totalAcceptedNumber计算一个avgAcceptRate. 每一道题都有一个value,value ...

随机推荐

  1. linux下查找字符串的命令

    1. set命令可以显示出当前shell下所有全局参量定义及其值;   2. 查找并删除当前目录下小文件: find . -type f -size -10k -exec rm {} \; 说明: w ...

  2. IOS开发之关键字synchronized

    static Config * instance = nil; +(Config *) Instance { @synchronized(self)  { if(nil == instance)  { ...

  3. Python 反射-isinstance-issubclass-__str__-__del__

    用到的 isinstance(对象,类)  -------------------  判断一个对象是否是一个类的实例 issubclass(子类,父类)  ----------------  判断一个 ...

  4. rownum导致sql不能进行谓词推入

    背景 案件(13405_RI-再保结算查询导出太慢),造成性能慢的原因是执行以下sql时,每次执行平均需要消耗2秒, 画面上,点击一次导出按钮,就会发起数以百记的调用. SQL执行代码段 select ...

  5. 创建Tensor

    目录 创建Tensor numpy, list numpy list zeros, ones, fill zeros ones fill random 打乱idx后,a和b的索引不变 constant ...

  6. 自己封装的js工具

    // 封装函数insertAfter;功能类似insertBefore(); var div = document.getElementsByTagName("div")[0]; ...

  7. Matlab学习笔记(三)

    二.MATLAB基础知识 (四)数组 MATLAB总是把数组看作存储和运算的基本单位,标量数据也被看作是(1×1)的数组 一维数组的创建 创建一维数组的几种方法:(e_two_14.m) 直接输入法: ...

  8. 牛客网NOIP赛前集训营 第6场 T1 最长路

    [题解] 先建反向图,然后跑拓扑排序求出最长路. 将所有的点按照最长路从小到大分层,把上一层连向这一层的边按照边权为第一关键字.起点的排名为第二关键字排序. 按照这个顺序更新这一层的答案,按照这一层每 ...

  9. java程序验证用户名密码和验证码登录的小例子

    package Study02; import java.util.Random; import java.util.Scanner; public class test { static Strin ...

  10. python gdal库安装

    yum安装了postgis之后,会安装依赖gdal centos7.5的repo中gdal为1.11.4-3版本