首页 > 代码库 > 又一道小题
又一道小题
题目:给出一系列DNA字母串(高中生物知识可知仅含ACTG四个字母),以逆序数作为评判标准,从好到坏排序。逆序数:在n个元素的任意排列中,当某两个元素的先后次序与标准次序不同时,就说有1个逆序。一个排列中所有逆序总数叫做这个排列的逆序数。
方法:先求每个字符串的逆序数,再将字符串按逆序数排列。
代码抄自GitHub:
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int len = in.nextInt(), test = in.nextInt(); String[] list = new String[test]; for(int i=0;i<test;i++){ list[i] = in.next(); } Arrays.sort(list,new Comp()); for(int i=0;i<list.length;i++){ System.out.println(list[i]); } } private static class Comp implements Comparator<String> { public int compare(String o1, String o2) { Integer count1 = 0, count2 = 0; for (int i = 1; i < o1.length(); i++) { for(int j = i; j>0;j--){ if(o1.charAt(j)<o1.charAt(j-1)){ char temp = o1.charAt(j); o1 = o1.substring(0,j-1)+o1.charAt(j)+o1.charAt(j-1)+o1.substring(j+1,o1.length()); count1++; } if(o2.charAt(j)<o2.charAt(j-1)){ char temp = o2.charAt(j); o2 = o2.substring(0,j-1)+o2.charAt(j)+o2.charAt(j-1)+o2.substring(j+1,o2.length()); count2++; } } } return count1.compareTo(count2); } } }
又一道小题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。