01排序的Java实现
比赛描写叙述:
将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实现的更多相关文章
- ACM——01排序
http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1024 01排序 时间限制(普通/Jav ...
- Spark基础排序+二次排序(java+scala)
1.基础排序算法 sc.textFile()).reduceByKey(_+_,).map(pair=>(pair._2,pair._1)).sortByKey(false).map(pair= ...
- 几种经典的数据排序及其Java实现
选择排序 思想 n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空. ②第1趟排序 在无序区R[1..n]中选出关键字最小的记录R[k ...
- 专题 查找与排序的Java代码实现(一)
专题 查找与排序的Java代码实现(一) 查找(Searching) 线性查找(linear search) 属于无序查找算法,适合于存储结构为顺序存储或链接存储的线性表. 基本思想:从数据结构线形表 ...
- 程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现)
http://blog.csdn.net/pzhtpf/article/details/7559896 程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现) 程序员必知的8大 ...
- 希尔排序之Java实现
希尔排序之Java实现 一.方法一 package cn.com.zfc.lesson21.sort; /** * * @title ShellSort * @describe 希尔排序 1959 年 ...
- 选择排序之Java实现
选择排序之Java实现 一.方法一 package cn.com.zfc.lesson21.sort; /** * * @title SelectSort * @describe 选择排序 * @au ...
- 十大经典排序【Java实现,手工作坊式】
终于把排序这个硬骨头,但是又很基础的知识点,自己手撕了一遍!之前,使用Python看着算法导论的书手撕过一遍,印象不是很深刻,容易忘记!好记性不如烂笔头!多自己思考解决问题 1,交换类CAS[最简单] ...
- POJ题目排序的Java程序
POJ 排序的思想就是根据选取范围的题目的totalSubmittedNumber和totalAcceptedNumber计算一个avgAcceptRate. 每一道题都有一个value,value ...
随机推荐
- Spring Data Redis入门示例:基于Jedis及底层API (二)
使用底层API:RedisConnectionFactory和RedisConnection可以直接操作Redis,下面是一个简单的例子: ### Maven依赖 <properties> ...
- CGPathAddArc
使用CGPathAddArc使UIView的Layer绕中心点旋转 2012-12-04 15:38 775人阅读 评论(0) 收藏 举报 animationAnimationiosiOSIOSlay ...
- PS和AI安装后报代码为16的错误解决方法
1.问题 2.解决方式 右击属性,改为兼容性运行 参考文章地址:https://www.jb51.net/softjc/308950.html
- ehcache的学习笔记(一)
学习ehcache文档: 介绍:Ehcache是一个开源的项目,用来提高性能的基于标准化的缓存,无需使用数据库,简化了可扩展性.他是最广泛使用的基于java的缓存,因为他是强壮的,被证实的,功能全面的 ...
- Shader Wave
Shader Wave 一.原理 1. 采用 UV 坐标为原始数据,生成每一条波浪线. 2. 使用 Unity 的 Time.y 作为时间增量,动态变换波形. 二.操作步骤 1. 首先使用纹理坐标生成 ...
- java的动态代理机制详解-----https://www.cnblogs.com/xiaoluo501395377/p/3383130.html
java的动态代理机制详解-----https://www.cnblogs.com/xiaoluo501395377/p/3383130.html
- 重启系统media服务
1.adb shell 执行 stop media & start media 或者stop media ; start media 2.代码里执行 import android.os.Sys ...
- codevs1792 分解质因数
题目描述 Description 编写一个把整数N分解为质因数乘积的程序. 输入描述 Input Description 输入一个整数 N 输出描述 Output Description 输出 分解质 ...
- 斯特林(Stirling)公式 求大数阶乘的位数
我们知道整数n的位数的计算方法为:log10(n)+1n!=10^m故n!的位数为 m = log10(n!)+1 lgN!=lg1+lg2+lg3+lg4+lg5+................. ...
- Surprising Strings
Surprising Strings Time Limit: 1000MS Memory Limit: 65536K Total Submissions: Accepted: Description ...