oj 1007
Posted yangzihong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oj 1007相关的知识,希望对你有一定的参考价值。
DNA分类
时限:1000 MS | 内存限制:10000 K | |
提交材料共计: 114762 | 接受: 45919 |
描述
在一个序列中,“未排序”的一种衡量标准是,彼此之间出现无序的一对条目的数量。例如,在字母序列“DAABEC”中,这一度量为5,因为D在右边大于4个字母,而E在右边大于一个字母。这个度量称为序列中的反转数。序列‘AACEDGG’只有一个反转(E和D)--它几乎被排序--而‘ZWQM’序列有6个反转序列(它尽可能地没有排序-与排序正好相反)。
您负责对DNA字符串序列(仅包含四个字母A、C、G和T的序列)进行编目。但是,你要把它们分类,不是按字母顺序排列,而是按“排序顺序”排序,从“排序最多”到“排序最少”。所有的字符串都有相同的长度。
您负责对DNA字符串序列(仅包含四个字母A、C、G和T的序列)进行编目。但是,你要把它们分类,不是按字母顺序排列,而是按“排序顺序”排序,从“排序最多”到“排序最少”。所有的字符串都有相同的长度。
输入
第一行包含两个整数:正整数n(0<n<=50),表示字符串的长度;正整数m(0<m<=100),表示字符串的数目。后面跟着m行,每一行包含一个长度为n的字符串。
输出量
输出输入字符串列表,从“大部分排序”排列到“排序最少”。由于两个字符串可以被同等排序,然后根据原始顺序输出它们。
样本输入
10 6 AACATGAAGG TTTTGGCCAA TTTGGCCAAA GATCAGATTT CCCGGGGGGA ATCGATGCAT
样本输出
CCCGGGGGGA AACATGAAGG GATCAGATTT ATCGATGCAT TTTTGGCCAA TTTGGCCAAA
来源
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); List<Element> list = new ArrayList<Element>(); List<Integer>levelList=new ArrayList<Integer>(); int i,j, level, elementNum; scanner.nextInt(); elementNum = scanner.nextInt(); int flag = 0; for (i = 0; i < elementNum + 1; i++) { String element = scanner.nextLine(); if (flag == 0) { flag = 1; continue; } char[] elementArray = element.toCharArray(); level = getLevel(elementArray); Element element1 = new Element(); element1.setValue(element); element1.setLevel(level); list.add(element1); levelList.add(level); } Object[] levelArray = levelList.toArray(); Arrays.sort(levelArray); for(i=0;i<levelArray.length;i++){ for(j=0;j<list.size();j++){ if(list.get(j).getLevel()==levelArray[i]){ System.out.println(list.get(j)); // System.out.println(list.get(j).getValue()); list.remove(j); break; } } } } private static int getLevel(char[] elementArray) { int i, j, level = 0, len = elementArray.length; for (i = 0; i < len - 1; i++) { for (j = i + 1; j < len; j++) { if (elementArray[i] > elementArray[j]) { level++; } } } return level; } } class Element { private String value; private Integer level; public String getValue() { return value; } void setValue(String value) { this.value = value; } public Integer getLevel() { return level; } void setLevel(Integer level) { this.level = level; } @Override public String toString() { return "Element{" + "value=‘" + value + ‘‘‘ + ", level=" + level + ‘}‘; } }
不知道哪里错了
以上是关于oj 1007的主要内容,如果未能解决你的问题,请参考以下文章