POJ1007

简单问题,就是求逆序数的问题而已~
不过依旧不能一次AC
因为太2了
对于下列测试数据:

1 1
A
要出错~


问题描述###

对于大写字母求每个序列的逆序数,然后按逆序数的升序排列重新输出~


难点###

无~


代码实现###

`
package poj;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class Poj1007 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String p = sc.nextLine();
String ps[] = p.split(" ");
int n = Integer.valueOf(ps[0]);
int m = Integer.valueOf(ps[1]);
HashMap map = new HashMap();
ArrayList list = new ArrayList();
for(int k = 0 ; k < m ; k ++){
String tmp = sc.nextLine();
int inversions = 0;
for(int i = 0 ; i < tmp.length() ; i ++){
for(int j = i+1; j < tmp.length() ; j ++){
char a = tmp.charAt(i);
char b = tmp.charAt(j);
if(a > b)
inversions++;
}
}
list.add(inversions);
map.put(inversions, tmp);
}
sc.close();
for(int i = 0 ; i < list.size() ; i ++){
for(int j = 0 ; j < list.size() -1 ; j ++){
Integer aV = list.get(j);
Integer bV = list.get(j+1);
if(aV > bV){
list.set(j, bV);
list.set(j+1, aV);
}

        }
    }
    for(Integer in : list){
        System.out.println(map.get(in));
    }
}

}

`

你可能感兴趣的:(POJ1007)