POJ 1007 Java:DNA Sorting

来源:互联网 发布:人工智能的电影 编辑:程序博客网 时间:2024/05/29 09:25

题目描述:大意是给出一些相同长度的字符串,根据这些字符串的逆序数进行排序,输出。


分析:定义一个DNA类,其中包含字符串和该字符串的逆序数两个成员变量,和相关成员函数。对给定的字符串排序,再输出。


AC代码:

import java.util.*;public class POJ1007 {public static void main(String[] args){Scanner s = new Scanner(System.in);int length = s.nextInt();int num = s.nextInt();DNA[] dna = new DNA[num];s.nextLine();//用于跳过换行符for(int i=0; i<num; i++){dna[i] = new DNA(s.nextLine());}sort(dna);for(int i=0; i<num; i++){System.out.println(dna[i].str);}s.close();}//排序public static void sort(DNA[] dna){DNA tmp = new DNA();for(int i=0; i<dna.length; i++){for(int j=1; j<dna.length-i; j++){if(dna[j-1].compare(dna[j])){tmp.set(dna[j]);dna[j].set(dna[j-1]);dna[j-1].set(tmp);}}}}}class DNA{String str;int inversion = 0;DNA(){this.str = null;}DNA(String str){this.str = str;//计算出每个DNA的逆序数count();}public void count(){char ch[] = str.toCharArray();for(int i=0; i<str.length(); i++){for(int j=i+1; j<str.length(); j++){if(ch[i] > ch[j])inversion++;}}}public boolean compare(DNA dna){if(this.inversion >= dna.inversion){return true;}else return false;}public void set(DNA d){this.str = d.str;this.inversion = d.inversion;}}



0 0
原创粉丝点击