大家好,又见面了,我是全栈君。
Description
You are responsible for cataloguing a sequence of DNA strings (sequences containing only the four letters A, C, G, and T). However, you want to catalog them, not in alphabetical order, but rather in order of “sortedness”, from “most sorted” to “least sorted”. All the strings are of the same length.
Input
Output
Sample Input
10 6
AACATGAAGG
TTTTGGCCAA
TTTGGCCAAA
GATCAGATTT
CCCGGGGGGA
ATCGATGCAT
Sample Output
CCCGGGGGGA
AACATGAAGG
GATCAGATTT
ATCGATGCAT
TTTTGGCCAA
TTTGGCCAAA
代码如下:
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.util.Arrays;
import java.util.Comparator;
//import java.util.Scanner;
class DNA {
String value;
int level;
}
class DNAType implements Comparator<Object> {
public int compare(Object arg0, Object arg1) {
DNA obj1 = (DNA) arg0;
DNA obj2 = (DNA) arg1;
return obj1.level - obj2.level;
}
}
public class DNASorting {
public static void main(String[] args) throws Exception {
int i;
// Scanner cin = new Scanner(System.in);
DataInputStream cin = new DataInputStream(new BufferedInputStream(
System.in));
// int col = cin.nextInt();
// int row = cin.nextInt();
// cin.nextLine();
String s = new String();
s = cin.readLine();
String n[] = s.split(" ");
int col = Integer.parseInt(n[0]);
int row = Integer.parseInt(n[1]);
DNA dna[] = new DNA[row];
for (i = 0; i < row; ++i) {
String line = new String();
// line = cin.nextLine();
line = cin.readLine();
dna[i] = new DNA();
dna[i].value = line;
dna[i].level = getLevel(line);
}
DNAType comp = new DNAType();
Arrays.sort(dna, comp);
for (i = 0; i < row; ++i) {
System.out.println(dna[i].value);
}
}
private static int getLevel(String line) {
int i, j, t = 0;
for (i = 0; i < line.length(); ++i) {
for (j = i + 1; j < line.length(); ++j) {
if (line.charAt(i) > line.charAt(j)) {
++t;
}
}
}
return t;
}
}
作者:jason0539
微博:http://weibo.com/2553717707
博客:http://blog.csdn.net/jason0539(转载请说明出处)
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121381.html原文链接:https://javaforall.net