/**
* 1、提取出每一个字符串对应的磁盘空间大小
*
* 2、对空间大小进行由小到大的排序,需确保稳定
*
*/
public class CPSort {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
//获取磁盘总数
int sum = in.nextInt();
in.nextLine();
List<String> list = new ArrayList<>();
for (int i = 0; i < sum; i++) {
list.add(in.nextLine());
}
//进行排序
list.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return getNum(o1)-getNum(o2);
}
});
for (String s : list) {
System.out.println(s);
}
}
/**
*获取字符串对应的M值
*/
public static int getNum(String s){
int val=0;
String numStr="";
for (int i=0;i<s.length();i++){
if (s.charAt(i)=='M'){
val+=Integer.parseInt(numStr);
numStr="";
}else if (s.charAt(i)=='G'){
val+=Integer.parseInt(numStr)*1024;
numStr="";
}else if(s.charAt(i)=='T'){
val+=Integer.parseInt(numStr)*1024*1024;
numStr="";
}else{
//获取一个字母前面的数字信息
numStr+=s.charAt(i);
}
}
return val;
}
}
磁盘容量排序【华为OD】
于 2023-10-17 15:13:06 首次发布