poj1007-java
2015-04-19 17:57
253 查看
poj1007
题目大意:
Collections.sort();
用法见:
题目大意:
序列“未排序程度”的一个计算方式是元素乱序的元素对个数。例如:在单词序列“DAABEC'”中,因为D大于右边四个单词,E大于C,所以计算结果为5。这种计算方法称为序列的逆序数。序列“AACEDGG”逆序数为1(E与D)——近似排序,而序列``ZWQM'' 逆序数为6(它是已排序序列的反序)。 你的任务是分类DNA字符串(只有ACGT四个字符)。但是你分类它们的方法不是字典序,而是逆序数,排序程度从好到差。 即逆序数从小到大,所有字符串长度相同。
import java.util.*; class DNA { private String str = null; private int sortNum = 0; public DNA(String input){ str = input; int num=0; for(int i=0;i<str.length()-1;i++){ for(int j=i+1;j<str.length();j++){ if(str.charAt(i)>str.charAt(j)){ num++; } } } sortNum = num; } public int getSortNum(){ return sortNum; } @Override public String toString(){ return str; } } class DNAComparator implements Comparator{ @Override public int compare(Object o1, Object o2) { DNA d1=(DNA)o1; DNA d2=(DNA)o2; if(d1.getSortNum() > d2.getSortNum()){ return 1; }else if(d1.getSortNum() == d2.getSortNum()){ return 0; }else{ return -1; } } } public class Main { public static void main(String[] args) { Scanner ss=new Scanner(System.in); String[] t=ss.nextLine().split(" "); int col=Integer.valueOf(t[0]).intValue(); int row=Integer.valueOf(t[1]).intValue(); List list=new ArrayList(); for(int i=0;i<row;i++){ DNA dna=new DNA(ss.nextLine()); list.add(dna.toString()); } Collections.sort(list, new DNAComparator()); print(list); } private static void print(List list){ //使用Iterator遍历 Iterator iter = list.iterator(); while(iter.hasNext()){ System.out.println(iter.next()); } } }
Collections.sort();
用法见:
相关文章推荐
- POJ 1007 DNA Sorting [解题报告] Java
- poj 1007 Java
- poj 1007 Java AC啦(面向对象思想)
- POJ 1007 Java:DNA Sorting
- Poj1979【dfs】java题解
- poj 2750题鸡兔同笼(java)
- poj 1007 DNA Sorting(STL运用)
- POJ 1007 DNA Sorting
- poj 1004 Java
- POJ-1007 DNA Sorting
- poj 1007
- poj 1131 Octal Fractions(高精度小数进制转换) Java
- 【Java练习11】POJ 3199
- poj Java版 a+b 1000道题
- poj1007——DNA Sorting
- java在poj上提交注意的问题
- POJ 3101 Astronomy (挖坑待学Java……最小公倍数---大数表示)
- POJ 2015 JAVA
- poj 1007
- poj 1001 && hdu 1063 (java版本)