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 ...
随机推荐
- tcp案例之文件下载器
文件下载器客户端 import socket def main(): # 1.创建一个tcp socket tcp_client_socket=socket.socket(socket.AF_INET ...
- Mysql学习总结(43)——MySQL主从复制详细配置
环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6.26.tar.gz 主节点IP:192.168.1.205 主机名:edu-mysql ...
- 图论算法——最短路径Dijkstra,Floyd,Bellman Ford
算法名称 适用范围 算法过程 Dijkstra 无负权 从s开始,选择尚未完成的点中,distance最小的点,对其所有边进行松弛:直到所有结点都已完成 Bellman-Ford 可用有负权 依次对所 ...
- Webdriver元素定位2(XPath)
XPath即为XML路径语言,它是一种用来确定XML文档中某部分位置的语言.XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力. 绝对路径定位 案例:在百度首页搜索框输入selenium ...
- 九度oj 题目1490:字符串链接
题目1490:字符串链接 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:2610 解决:1321 题目描述: 不用strcat 函数,自己编写一个字符串链接函数MyStrcat(char ...
- codeforces365A
#include<stdio.h> #include<string.h>//刚做codeforces上的比赛题我都没看懂啊啊啊啊啊啊 int main() { int n,m, ...
- Reactor Cooling(无源汇有上下界网络流)
194. Reactor Cooling time limit per test: 0.5 sec. memory limit per test: 65536 KB input: standard o ...
- [NOIP2006] 提高组 洛谷P1063 能量项链
题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定 ...
- msp430入门编程07
msp430中C语言的函数及实现07 msp430中C语言操作端口I/O10 msp430中C语言的模块化头文件及实现11 msp430中C语言的模块化头文件及库文件12 msp430入门学习 msp ...
- 利用mysql分析小规模数据
1 获取数据 示例:(/home/work/data/1.data) 123457,chenli,70 123458,liuyang,71 2 create table CREATE TABLE sc ...