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 ...
随机推荐
- Libjingle 库
Libjingle 是google talk voice(语音聊天) 和 p2p interoperability(点对点操作)库,是提供了google talk,p2p文件共享和语音呼叫能力的组件集 ...
- Go:错误处理
在默认情况下,当程序发生错误(panic)后,程序就会退出(崩溃),所以我们希望,当程序发生错误后,可以捕获到错误,并进行处理,保证程序可以继续执行.比如捕获到错误后,打入日志或给管理员一个提示(邮件 ...
- 在rubymine中集成heroku插件
先安装heroku,参见http://www.cnblogs.com/jecyhw/p/4906990.html Heroku安装之后,就自动安装上git,目录为C:\Program Files (x ...
- Poj 2187 凸包模板求解
Poj 2187 凸包模板求解 传送门 由于整个点数是50000,而求凸包后的点也不会很多,因此直接套凸包之后两重循环即可求解 #include <queue> #include < ...
- List<> 集合 删除指定行
不多说,直接上代码 public class Name { public string NameInfo { get; set; } } 删除值为Name2的行 static void Main(st ...
- os系统下安装Python2和Python3
一.下载Xcode工具 1.在App Store 里面下载并安装Xcode 2.安装好Xcode后就打开它,首次进入会有一些LicenceAgreement,点同意就是了,然后就进入到 这个界面: 3 ...
- java中装箱与拆箱
转载自:https://www.cnblogs.com/dolphin0520/p/3780005.html 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若 ...
- Codeforces Round #355 (Div. 2)-B. Vanya and Food Processor,纯考思路~~
B. Vanya and Food Processor time limit per test 1 second memory limit per test 256 megabytes input s ...
- [BZOJ1138][POI2009]Baj 最短回文路
[BZOJ1138][POI2009]Baj 最短回文路 试题描述 N个点用M条有向边连接,每条边标有一个小写字母. 对于一个长度为D的顶点序列,回答每对相邻顶点Si到Si+1的最短回文路径. 如果没 ...
- hdu 4465 求期望(C(m,n)太大用log优化)
/* 坑啊 数学函数的运用log处理,exp还原 tle好长时间,一直用g++交,最后把别人正确的代码交上也是tle,用c++交一遍ac 题意:有两个数量为n的糖果,一个人开始吃,吃到最后有一堆剩余为 ...