华为OD笔试 磁盘容量排序
题目:磁盘的容量单位有M、G、T,其关系为 1T = 1000G、1G = 1000M,如样例所示先输入磁盘的个数,再依次输入磁盘的容量大小,然后按照从小到大的顺序对磁盘容量进行排序并输出。
笔试的时候没做对~
当时想的是,把接收到的数据分成3个数组,开始写完发现不对,也没想到应该怎么写,今天搜了一下这个题目,忽然发现可以用TreeSet直接在获取数据的时候进行排序。
参考:https://www.cnblogs.com/codeapes666/p/12445607.html
笔试的时候这样写的:
package com.example.demo.examine;import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;/*** @Description* 磁盘容量排序* M G T 升序* @Author Radish* @Date 2020/3/16*/public class Rongliang {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) {int n = in.nextInt();String[] strs = new String[n];for (int i = 0; i < n; i++) {strs[i] = in.next();}//先转换后排序//那都转换成M?//或者不转,直接分成三段进行排序?可是如果不转每次比较大小的时候还是要转?List<Integer> m = new ArrayList<>(n);List<Integer> g = new ArrayList<>(n);List<Integer> t = new ArrayList<>(n);for (int i = 0; i < n; i++) {if (strs[i].endsWith("M")){m.add(Integer.valueOf(strs[i].substring(0,strs[i].length()-1)));} else if (strs[i].endsWith("G")){g.add(Integer.valueOf(strs[i].substring(0,strs[i].length()-1)));} else if (strs[i].endsWith("T")){t.add(Integer.valueOf(strs[i].substring(0,strs[i].length()-1)));}}//对三段进行排序,然后一起输出sort(m);sort(g);sort(t);for (Integer i : m) {System.out.println(i +"M");}for (Integer i : g) {System.out.println(i + "G");}for (Integer i : t) {System.out.println(i + "T");}}}public static void sort(List<Integer> list) {for (int i = 0; i < list.size()-1; i++) {for (int j = i+1; j < list.size(); j++) {int temp = list.get(j);if (list.get(j)<list.get(j-1)) {list.set(j,list.get(j-1));list.set(j-1,temp);}}}}}
今天写的:
package com.example.demo.examine;import java.util.*;/*** @Description* 磁盘容量排序* M G T 升序* @Author Radish* @Date 2020/3/16*/public class Rongliang2 {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) {int n = in.nextInt();String[] strs = new String[n];//先转换后排序//那都转换成M?//或者不转,直接分成三段进行排序?可是如果不转每次比较大小的时候还是要转?//知道啦!利用TreeMap啊!TreeSet<String> set = new TreeSet<>(new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {//直接获取单位,然后换算比较int o11 = getO(o1);int o22 = getO(o2);if (o11 < o22) {return -1;}if (o11 > o22) {return 1;}return 0;}});for (int i = 0; i < n; i++) {// strs[i] = in.next();set.add(in.next());}System.out.println(set);}}private static int getO(String o1) {int o11 = Integer.valueOf(o1.substring(0,o1.length()-1));switch (o1.substring(o1.length()-1)) {case "G":o11 = o11 * 1000;break;case "T":o11 = o11 * 1000000;break;}return o11;}
}
华为OD笔试 磁盘容量排序相关推荐
- 华为笔试题-磁盘容量排序
题目大意 磁盘的容量单位有M.G.T,其关系为 1T = 1000G.1G = 1000M,如样例所示先输入磁盘的个数,再依次输入磁盘的容量大小,然后按照从小到大的顺序对磁盘容量进行排序并输出. 例如 ...
- 【华为OD机试真题2023B卷 JS】磁盘容量排序
华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 磁盘容量排序 知识点排序 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 磁盘的容量单位常用的有M,G,T这三个等级,它们之间 ...
- 【2022华为od机试题】【JAVA】【刷题子】华为od机试题:磁盘容量排序(AC:100%)
(注意:答案仅作为参考,但不作为最优解:实际机试中下面代码ac通过率:100%.如有更好优化的空间欢迎文章下方进行留言讨论) 一.题目与题目分析 题目 磁盘的容量v是有M.G.T三个等级的单位.(其中 ...
- 华为OD机试 - 磁盘容量排序
题目描述 磁盘的容量单位常用的有M,G,T这三个等级,它们之间的换算关系为1T = 1024G,1G = 1024M,现在给定n块磁盘的容量, 请对它们按从小到大的顺序进行稳定排序,例如给定5块盘的容 ...
- 【2023华为OD笔试必会25题--C语言版】目录
本专栏收录了华为OD 2022 Q4和2023Q1笔试题目,100分类别中的出现频率最高(至少出现100次)的25道,每篇文章包括题目和我亲自编写并在Visual Studio中运行成功的C语言代码. ...
- 华为OD笔试202010OD笔试华为OD第二题最长的非递减连续子序列的长度
华为OD笔试202010OD笔试华为OD第二题最长的非递减连续子序列的长度要连续的数字序列的最长的长度 直接看输入输出 输入 abc2234019A334bc 输出 4 解释:输入一个字符串,只包含字 ...
- 华为OD机试题,用 Java 解【磁盘容量排序】问题 | OD统一考试(B卷)
最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 [2023] 华为OD机试 - 分糖果(Java) | 机试题算法思路 [2023] 华为OD机试 - 非严格递增连续数字序列 | 机试 ...
- 20天拿下华为OD笔试之【DFS/BFS】2023Q1A-开心消消乐【闭着眼睛学数理化】全网注释最详细分类最全的华为OD真题题解
[DFS/BFS]2023Q1A-开心消消乐 题目描述与示例 题目描述 给定一个 N 行 M 列的二维矩阵,矩阵中每个位置的数字取值为 0 或 1,矩阵示例如: 1 1 0 0 0 0 0 1 0 0 ...
- 【限时免费】20天拿下华为OD笔试之【DFS/BFS】2023B-寻找最大价值的矿堆【闭着眼睛学数理化】全网注释最详细分类最全的华为OD真题题解
[DFS/BFS]2023B-寻找最大价值的矿堆 题目描述与示例 给你一个由 '0'(空地).'1'(银矿).'2'(金矿)组成的的地图,矿堆只能由上下左右相邻的金矿或银矿连接形成.超出地图范围可以认 ...
最新文章
- (C++)1037 在霍格沃茨找零钱的两种解法
- JavaScript之Promise实现
- Activity的setResult方法
- 数组遍历 map()、forEach() 及 字符串切割 split() / 字符串截取 slice()、substring()、substr()...
- 如何验证c++代码线程安全性_Python3基础:如何验证你的代码
- 执行sql语句提示[Err] 1055 - Expression #2 of SELECT list is not in GROUP BY......错误的解决办法
- python有什么优点_Python是什么?有什么优点?赶紧来看看Python的入门教程
- Spring的EL表达式
- vc6开发一个抓包软件_惊奇软件[21]:这是一个程序员开发的背单词网站,可好用了!...
- 【分层图最短路】通信线路
- Web前端常用IDE快捷键记忆(WebSorm、VSCode)
- emmagee的基本使用
- JavaScript混淆器
- Onenbsp;ornbsp;morenbsp;scree…
- 叮咚:分享一款超棒的模组:IDO-SOM6Y08
- At least one JAR was scanned for TLDs yet contained no TLDs.问题解决方式
- 转账、汇款到账时间及手续费标准(招行和工行)
- 为什么说继承是把双刃剑
- “建房收租”网络时代人人可做
- 开发者如何在 DoraHacks 上参加 Web3世界的 Hackathon 和 Grant