石家庄网站服务网站建设交流qq

张小明 2026/3/12 12:36:33
石家庄网站服务,网站建设交流qq,如何做搞笑的视频视频网站,wordpress 网址导航磁盘容量排序 100分#xff08;python、java、c、js、c#xff09;题目 磁盘的容量单位常用的有M#xff0c;G#xff0c;T这三个等级#xff0c;它们之间的换算关系为1T 1024G#xff0c;1G 1024M#xff0c;现在给定n块磁盘的容量#xff0c;请对它们按从小到大的顺…磁盘容量排序 100分python、java、c、js、c题目磁盘的容量单位常用的有MGT这三个等级它们之间的换算关系为1T 1024G1G 1024M现在给定n块磁盘的容量请对它们按从小到大的顺序进行稳定排序例如给定5块盘的容量1T20M3G10G6T3M12G9M排序后的结果为20M3G3M12G9M1T10G6T。注意单位可以重复出现上述3M12G9M表示的容量即为3M12G9M和12M12G相等输入描述输入第一行包含一个整数n(2 n 100)表示磁盘的个数接下的n行每行一个字符串(长度大于2小于30)表示磁盘的容量由一个或多个格式为mv的子串组成其中m表示容量大小v表示容量单位例如20M1T30G10G6T3M12G9M。磁盘容量m的范围为1到1024的正整数容量单位v的范围只包含题目中提到的MGT三种换算关系如题目描述输出描述输出n行表示n块磁盘容量排序后的结果用例用例一输入3 1G 2G 1024M输出1G 1024M 2G用例二输入3 2G4M 3M2G 1T输出3M2G 2G4M 1Tpython解法解题思路本程序的目标是对存储容量进行排序输入的存储容量包含 MMBGGBTTB 等单位排序时需按照实际大小进行比较。解题步骤读取输入n表示存储设备的数量。disks存储容量列表例如 [512M, 2G, 1T]。计算存储单位的实际数值 calculate_value(cap)遍历字符串 cap 提取数值部分 num_str 和单位部分 M/G/TM (MB)保持数值不变。G (GB)转换为 MB1G 1024M。T (TB)转换为 MB1T 1024 × 1024M。返回统一转换后的 MB 值作为排序依据。对 disks 进行排序使用 sort()按 calculate_value() 计算的数值排序。输出排序后的存储容量逐行打印排序后的 disks# 读取存储设备数量 n int(input()) # 读取存储容量列表 disks [input() for _ in range(n)] # 计算存储容量的数值统一换算为 MB def calculate_value(cap): value 0 # 存储最终的 MB 数值 num_str # 临时存储数值部分 # 遍历字符串提取数值和单位 for ch in cap: if ch.isdigit(): num_str ch # 累积数值部分 else: if ch M: # MB 直接加 value int(num_str) elif ch G: # GB 转换为 MB (1G 1024M) value int(num_str) * 1024 elif ch T: # TB 转换为 MB (1T 1024 * 1024M) value int(num_str) * 1024 * 1024 num_str # 重置数值存储 return value # 返回统一换算的 MB 值 # 按照转换后的数值进行排序 disks.sort(keycalculate_value) # 输出排序后的存储容量 for disk in disks: print(disk)java解法解题思路本程序的目标是对存储容量进行排序输入的存储容量包含 MMBGGBTTB 等单位排序时需按照实际大小进行比较。解题步骤读取输入读取整数 n表示存储设备的数量。读取 n 行存储容量信息并存入 List disks。计算存储单位的实际数值 computeValue(String capacity)遍历 capacity 字符串提取数值部分 number 和单位部分 M/G/TM (MB)保持数值不变乘 1。G (GB)转换为 MB1G 1024M。T (TB)转换为 MB1T 1024 × 1024M。计算统一转换后的 MB 值并返回。对 disks 进行排序使用 sort() 方法自定义 Comparator 进行排序比较 computeValue(a) 和 computeValue(b)。输出排序后的存储容量遍历 disks逐行打印排序后的结果import java.util.*; public class Main { // 计算存储容量的数值统一换算为 MB private static long computeValue(String capacity) { long total 0; // 存储最终的 MB 数值 int multiplier 0; // 存储当前单位的换算值 StringBuilder number new StringBuilder(); // 存储数值部分 // 遍历存储容量字符串解析数值和单位 for (char c : capacity.toCharArray()) { if (Character.isDigit(c)) { number.append(c); // 累积数值部分 } else { int num Integer.parseInt(number.toString()); // 转换数值 switch (c) { case M: multiplier 1; break; // MB 直接使用 case G: multiplier 1024; break; // GB 转换为 MB (1G 1024M) case T: multiplier 1024 * 1024; break; // TB 转换为 MB (1T 1024 * 1024M) } total num * multiplier; // 计算总值 number.setLength(0); // 清空 number准备解析下一个数值 } } return total; // 返回最终的 MB 数值 } public static void main(String[] args) { Scanner sc new Scanner(System.in); int n sc.nextInt(); // 读取存储设备数量 sc.nextLine(); // 读取换行符防止干扰输入 ListString disks new ArrayList(); for (int i 0; i n; i) { disks.add(sc.nextLine()); // 读取存储容量 } // 按照转换后的数值进行排序 disks.sort((a, b) - Long.compare(computeValue(a), computeValue(b))); // 输出排序后的存储容量 for (String disk : disks) { System.out.println(disk); } } }C解法解题思路本程序的目标是对存储容量进行排序输入的存储容量包含 MMBGGBTTB 等单位排序时需按照实际大小进行比较。解题步骤读取输入读取整数 n表示存储设备的数量。读取 n 行存储容量信息并存入 vector capacitys。计算存储单位的实际数值 calc(const string cap)遍历 cap 字符串提取数值部分 num 和单位部分 M/G/TM (MB)保持数值不变乘 1。G (GB)转换为 MB1G 1024M。T (TB)转换为 MB1T 1024 × 1024M。计算统一转换后的 MB 值并返回。对 capacitys 进行排序使用 sort() 方法调用 compare() 进行排序比较 calc(a) 和 calc(b)。输出排序后的存储容量遍历 capacitys逐行打印排序后的结果#include iostream #include vector #include string #include algorithm #include sstream using namespace std; // 数字转换函数替代 C11 的 stoi int stringToInt(const string s) { stringstream ss(s); int num; ss num; return num; } // 计算存储容量的数值统一换算为 MB int calc(const string cap) { int ans 0; // 存储最终的 MB 数值 string num; // 临时存储数值部分 // 遍历存储容量字符串解析数值和单位 for (size_t i 0; i cap.size(); i) { char c cap[i]; if (isdigit(c)) { num c; // 累积数值部分 } else { if (c M) { ans stringToInt(num); // MB 直接使用 } else if (c G) { ans stringToInt(num) * 1024; // GB 转换为 MB (1G 1024M) } else if (c T) { ans stringToInt(num) * 1024 * 1024; // TB 转换为 MB (1T 1024 * 1024M) } num.clear(); // 清空 num准备解析下一个数值 } } return ans; // 返回最终的 MB 数值 } // 比较函数按照存储容量大小排序 bool compare(const string a, const string b) { return calc(a) calc(b); } // 执行排序并输出结果 void getResult(vectorstring capacitys) { sort(capacitys.begin(), capacitys.end(), compare); // 按照容量大小排序 // 逐行输出排序后的存储容量 for (size_t i 0; i capacitys.size(); i) { cout capacitys[i] endl; } } int main() { int n; cin n; // 读取存储设备数量 vectorstring capacitys(n); // 读取存储容量 for (int i 0; i n; i) { cin capacitys[i]; } // 进行排序并输出结果 getResult(capacitys); return 0; }C解法解题思路更新中JS解法解题思路本程序的目标是对存储容量进行排序输入的存储容量包含 MMBGGBTTB 等单位排序时需按照实际大小进行比较。解题步骤读取输入监听标准输入每次读取一行并存入 lines 数组。第一行输入 n表示存储设备的数量。读取 n 行存储容量信息并存入 lines。当 lines.length n 1 时调用 processDisks(lines) 进行处理。计算存储单位的实际数值 getCapacity(disk)使用正则表达式 (\d)([MGT]) 解析存储容量提取数值和单位M (MB)保持数值不变。G (GB)转换为 MB1G 1024M。T (TB)转换为 MB1T 1024 × 1024M。计算统一转换后的 MB 值并返回。对 disks 进行排序使用 sort() 方法按照 getCapacity() 计算的数值排序。输出排序后的存储容量遍历 disks逐行打印排序后的结果const readline require(readline); const rl readline.createInterface({ input: process.stdin, output: process.stdout, }); const lines []; // 监听输入每次读取一行 rl.on(line, (line) { lines.push(line); // 判断是否读取完所有输入行第一行为 n后续 n 行为存储容量 if (lines.length parseInt(lines[0], 10) 1) { lines.shift(); // 移除第一行n保留存储容量数据 processDisks(lines); // 调用处理函数 lines.length 0; // 清空 lines准备下一次输入 } }); // 处理并排序存储容量 function processDisks(disks) { disks .sort((a, b) getCapacity(a) - getCapacity(b)) // 按存储容量大小排序 .forEach((disk) console.log(disk)); // 输出排序后的存储容量 } // 计算存储容量的数值统一换算为 MB function getCapacity(disk) { let regex /(\d)([MGT])/g; // 正则匹配数值单位M、G、T let result; let total 0; // 解析存储容量字符串 while ((result regex.exec(disk)) ! null) { let num parseInt(result[1], 10); // 提取数值部分 let unit result[2]; // 提取单位部分 // 根据单位转换为 MB switch (unit) { case M: total num; // MB 直接加 break; case G: total num * 1024; // GB 转换为 MB (1G 1024M) break; case T: total num * 1024 * 1024; // TB 转换为 MB (1T 1024 * 1024M) break; } } return total; // 返回最终计算出的 MB 值 }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做门户型网站seo专员是什么职业岗位

3步掌握DeepSeek-V3上下文扩展:从压力测试到实战优化的完整指南 【免费下载链接】DeepSeek-V3 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-V3 当你的大模型在128K超长上下文下突然"失忆",你是否曾感到束手无策&#…

张小明 2026/3/12 12:36:30 网站建设

网站适合用angular做吗清丰网站建设电话

TMX地图格式实战指南:从游戏开发到跨领域应用 【免费下载链接】tiled Flexible level editor 项目地址: https://gitcode.com/gh_mirrors/ti/tiled 地图编辑的困境与解决方案 在传统游戏开发中,地图制作往往是效率瓶颈。开发者需要在代码中硬编码…

张小明 2026/3/12 12:36:27 网站建设

南山-网站建设信科网络空间注册网站

Typora 代码块痛点破解方案:从高亮失效到跨平台兼容的终极指南 引言:为什么我们离不开 Typora 代码块? 作为 Markdown 编辑器中的「瑞士军刀」,Typora 以其「所见即所得」的实时渲染特性,成为程序员、科研人员、技术…

张小明 2026/3/12 12:36:25 网站建设

html5 网站搭建医院网站建设 价格

8个AI论文工具,自考学生轻松搞定毕业写作! 自考论文写作的救星,AI工具如何改变你的学习节奏 在自考的学习旅程中,论文写作往往是最让人头疼的一环。无论是选题、大纲搭建,还是初稿撰写和反复修改,都需要大量…

张小明 2026/3/10 17:15:30 网站建设

织梦网站演示工程项目建设的八个阶段

代码重构艺术的技术文章大纲定义与核心概念重构的定义:在不改变代码外部行为的前提下优化内部结构 重构的目标:提升可读性、可维护性、可扩展性 重构与重写的区别:保留功能 vs 推翻重来重构的基本原则识别代码坏味道(Code Smells&…

张小明 2026/3/10 17:15:34 网站建设

网站设计与制作培训班沂南网站优化推广

1.开启事务:明确事物的起始点(begin或者start transaction)2.执行操作:执行SQL语句3.判断结果:若操作都执行成功,提交事务,修改生成若任意操作失败,回滚事务,撤销所有已经…

张小明 2026/3/10 17:15:39 网站建设