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<Integer, String> map = new HashMap<Integer, String>();
ArrayList<Integer> list = new ArrayList<Integer>();
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));
    }
}

}

`

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,176评论 0 41
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,963评论 0 2
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,790评论 0 33
  • 对于我来说有点难。在自己的电脑上没问题,但是oj上始终过不了~不知道为什么为报错 问题描述### 简单的映射和替换...
    Shiki阅读 626评论 1 1
  • 今天看了一篇短文《你是鹰,属于天空!》:一只鹰不小心掉到了鸡窝,它一直觉得自己是只鹰,应该飞翔,于是天天在屋顶上练...
    春来燕回阅读 242评论 1 4