华为机试:HJ68 成绩排序-解析

西安华为od前端-机试 前端考试机试一共三道题,分别是100分+100分+200分。考试一共2.5h。考试实测并未出现链表、树、图等数据结构,均为简单题。比官方的机考说明要简单。应该是前端对算法要求不高。 阅读详情

成绩排序_牛客题霸_牛客网

描述

对于给出的 nn 条姓名和成绩信息,根据指定的排序方式按成绩升序或降序排列并输出。
特别的,成绩相同的同学需要保持输入的先后顺序进行排序。可能存在多条信息的学生姓名一致。

输入描述:

第一行输入一个整数 n(1≦n≦200)n(1≦n≦200) 代表学生人数。
第二行输入一个整数 op(0≦op≦1)op(0≦op≦1) 代表排序方式,其中,00 表示按成绩降序,11 表示按成绩升序。
此后 nn 行,第 ii 行依次输入:
∙ ∙一个长度为 1≦len(si)≦201≦len(si​)≦20、由大小写字母构成的字符串 sisi​ 代表第 ii 个学生的姓名;
∙ ∙一个整数 ai(0≦ai≦100)ai​(0≦ai​≦100) 代表这个学生的成绩。

输出描述:

根据输入的排序方式,按照成绩升序或降序输出所有学生的姓名和成绩。对于每一名学生,新起一行。输出学生的姓名和成绩,用空格分隔。

示例1

输入:

3
0
fang 90
yang 50
ning 70
输出:
fang 90
ning 70
yang 50

说明:

在这个样例中,op=0op=0,因此按成绩降序排序。

思路:

这个的难度标的高,但是看起来跟前几题没什么区别,只要确定用哪个值排序即可,还要看清楚题目,究竟0和1,哪个代表升序,哪个代表降序。我就弄混了,和上一道排序的0,1代表的不一样,找问题找了好几分钟

代码:

void async function () {
    let arr = [];
    while(line = await readline()){
        arr.push(line);
    }
    let sortArr = arr.splice(2, arr[0])
    let sortedArr = JSON.parse(JSON.stringify(
        sortArr.sort((a,b) => {
            if(arr[1] == 0){
                return b.split(' ')[1] - a.split(' ')[1]
            }else{
                return a.split(' ')[1] - b.split(' ')[1]
            }
        })
    ))
    console.log(sortedArr.join('\n'));
}()

芝士:

请注意审题,看到底是降序还是升序

以下是升序,从小打大

arr.sort((a,b) => {
    return a - b
})

【华为OD机试Python实现】HJ68 成绩排序(较难) 文章目录题目描述输入描述:输出描述:示例1示例2参考代码 题目描述 给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 例示: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack 70 Tom 70 smith 67 从低到高 smith 67 jack 70 Tom 阅读详情

相关推荐

【牛客网华为机试】HJ68 成绩排序

题目 描述 查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 例示: jack70 peter96 Tom70 smith67 从高到低成绩 peter96 jack70 Tom70 smith67 从低到高 smith67 jack70 Tom70 peter96 ...

202xxx的博客 516

牛客---HJ68 成绩排序(有重复元素,不能用map)

【代码】牛客---HJ68 成绩排序(有重复元素,不能用map)

Frank---7的博客 286

华为od机考题目-HJ68-成绩排序(比较难)

华为od机考真题

VAN 547

【华为机试】HJ68 成绩排序

该题目要求对n名学生的成绩进行排序,并根据op参数决定升序或降序。关键点在于处理成绩相同的学生时,需保持其原始输入顺序。使用稳定排序算法实现,通过自定义比较函数,先按成绩排序,成绩相同时按输入顺序排序。时间复杂度为O(n log n),空间复杂度为O(n)。测试案例验证了排序的正确性和稳定性,适用于成绩管理等多种场景。 (149字)

qq_32019341的博客 1059

Android开发者必看:5分钟搞定DeepSeek API接入(附完整代码示例)

本文为Android开发者提供快速接入DeepSeek API的完整指南,包含环境配置、网络层设计、请求体构建等关键步骤,并附有详细代码示例。通过工程化实践,帮助开发者高效集成AI对话、代码生成等高级功能,提升移动应用竞争力。

bush的博客 535

CKAD-CN 考试知识点分享(12) Secret - 1

步骤操作完成1提取 Deployment 中的硬编码 Secret 值✅2创建名为postgres的 Secret✅3修改 Deployment 使用引用 Secret✅4验证新 Pod 正常运行✅❌未删除原 Deployment✅(遵守要求)✅任务完成。敏感信息已从环境变量移出,安全地存储在 Kubernetes Secret 中。

轻的博客 628

【华为机试真题详解】机试题按知识点整理(入门指引)

【华为机试真题 Python实现】【2022 Q1 Q2 | 100分】《华为机试真题》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!本文解法非最优解(即非性能最优)。专栏的题目,麻烦都收藏,点赞一下,支持一下,感谢!!【牛客网】 HJ5 进制转换 【牛客网】 HJ1 字符串最后一个单词的长度HJ17 坐标移动 (中等) HJ20 密码验证合格程序(中等) HJ33 整数与IP地址间的转换(中等)【机试真题】字

1万+

stm32f407等芯片(HAL库)时钟频率修改(乱码)

其他片子及库文件未知、未验证,只是在使用stm32f407ZG配置串口打印的时候,出现乱码,就从以下几方面定位问题: 1. 确认串口GPIO相关配置; 2. 确认波特率等参数; 3. 确认时钟频率; 结果这次使用YH的串口打印程序在ZDYZ的开发板调试项目工程(有点另类...),做功能验证,就出现了以上问题,出于好奇开始调试,最终发现是时钟频率问题。 看到下图这个配置,因为ZDYZ开发板使用的是8MHz外部晶振(好像默认的是25MHz,如图2),所以他这里PLL_M是25,不是推荐值,感...

bulefire2009的博客 5513

华为机试HJ68 成绩排序

首先看一下题。

bingw0114的博客 1070

告别UI字体臃肿!详解TextMeshPro字体AssetBundle打包优化技巧(Unity 2022实测)

本文详细解析了Unity 2022中使用TextMeshPro时字体资源AssetBundle打包的优化技巧,特别针对中日文等多语言场景下的字体臃肿问题。通过公共资源标记、依赖关系分析和实战案例,帮助开发者有效减少包体体积和内存占用,提升游戏性能。

weixin_33725722的博客 418

2.2.1.3-移动平均线(python画k线、均线、5日线、买卖点图、python均线策略)

* 绘制一个k线图,也就是蜡烛图 * 计算5日均线值、10日均线值 * 在k线图上,绘制5日线和10日线图 * 在5日线上,绘制与10日线的交叉点(上穿、下穿时) python画k线、均线、5日线、买卖点图、python均线策略

KelvinLiu 3413

华为机试真题练习汇总(共 108 题)

华为机试真题练习汇总(共 108 题)

ProgramNovice的博客 2913

Waymo数据集里的隐藏彩蛋:5个激光雷达数据融合实战(附Python代码)

本文深入解析Waymo数据集中5个激光雷达的数据融合技术,提供Python实战代码,帮助开发者掌握多传感器协同工作的关键方法。通过时间同步、坐标转换和运动补偿等技术,实现高精度3D场景重建,提升自动驾驶系统的环境感知能力。

weixin_30399821的博客 79

华为机试HJ68:成绩排序

C++实现——成绩排序

翟天保的博客 1万+

LTspice进阶技巧-031.一键加密仿真模型:LTspice Encrypt Tool实战指南

本文详细介绍了LTspice Encrypt Tool的使用方法,帮助工程师一键加密LTspice仿真模型,保护知识产权。通过图形化界面简化操作流程,支持批量加密和兼容性处理,适用于电路设计中的模型保护需求。

weixin_28304023的博客 202

EMD (经验模态分解) 在 C++ 中的实现指南

EMD 是由 Norden E. Huang 等人在1998年提出的一种适用于非线性和非平稳信号的分析方法。对称性:IMF 的上下包络对称。零交叉点:IMF 的零交叉点数量与极值点数量相同或相差一个。本文详细介绍了如何在C++中实现EMD,包括理论背景、算法步骤、代码实现和优化等内容。通过丰富的代码示例和详细的解释,希望能够帮助读者掌握EMD的基本原理,并能够在实际项目中灵活应用。未来,随着信号处理技术的不断发展,EMD及其变种(如EEMD、CEEMDAN等)将继续在各个领域发挥重要作用。

qq_38334677的博客 1748

华为机试-068-较难-HJ68.成绩排序

【代码】华为机试-068-较难-HJ68.成绩排序

tttzzzqqq2018的博客 454

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

(python)牛客网(华为机试四)——较难

未完待续~ 目录HJ1 字符串最后一个单词的长度HJ2 计算字符个数HJ 明明的随机数HJ4 字符串分隔HJ13 句子逆序HJ17 坐标移动HJ20 密码验证合格程序HJ23 删除字符串中出现次数最少的字符串HJ24 合唱队HJ25 数据分类处理字符串加解密HJ30字符串合并处理HJ32 密码截取HJ33 整数与ip的转换 HJ1 字符串最后一个单词的长度 while True: try: print(len(input().split()[-1])) except:

Alannah的个人学习记录 2177

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

华为OD机试攻略

牛客华为机试题库——https://www.nowcoder.com/ta/huawei(重点看)[题号 HJ开头]牛客在线编程算法篇——https://www.nowcoder.com/exam/oj[题号NC开头]剑指offer——https://www.nowcoder.com/ta/coding-interviews?page=1[题号 JZ开头]力扣——https://leetcode-cn.com/problemset/all。

张紫娃的博客 1121

【华为OD机试】HJ68 成绩排序

第一行输入要排序的人的个数n,第二行输入一个整数表示排序的方式,之后n行分别输入他们的名字和成绩,以一个空格隔开。给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩。进阶:时间复杂度:O(nlogn) ,空间复杂度:O(n)按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开。注:0代表从高到低,1代表从低到高。数据范围:人数:1≤n≤200。都按先录入排列在前的规则处理。

Xylon的博客 536

华为机试真题练习汇总(61~70)

华为机试真题练习汇总(61~70)

ProgramNovice的博客 486

《华为机试》刷题之HJ68 成绩排序

一、题目 二、示例 三、代码 while True: try: n = int(input()) if input() == "0": sign = True else: sign = False result = [] for i in range(n): name, score = input().split(' ')

胡萝卜 602

HJ68 成绩排序

【代码】HJ68 成绩排序。

张紫娃的博客 200

华为机考攻略(python)--查找排序【7题】(第五题*HJ68成绩排序)

坚持从基础做起,在认定的方向下不断努力,就会把握住每一次机会;要尽力在同样的时间和生存条件下发现别人未能发现的机遇,从而改变整个人生。

用余生去守护的博客 724

【华为od刷题(C++)】HJ68 成绩排序(stable_sort、Lambda 表达式)

是一种简洁的表示匿名函数(没有函数名的函数)的方法;在 C++ 中,lambda 表达式通常用于提供一个临时函数给算法,特别是在排序、过滤等场景中,它能够让代码更加简洁和灵活。Lambda 表达式能够使代码更简洁,尤其在处理短小的函数时非常有用;这段代码实现了根据成绩排序学生,并按顺序输出学生的姓名和成绩。在性能上可能会略逊一筹,尤其是对于较大的数据集。是 C++ 标准库中的一个排序算法,它与。按它们在原始容器中的相对顺序保留。会保留相等元素的相对顺序,而。等更快的排序算法,因此。

m0_64866459的博客 560

牛客-华为机试-较难-排序-HJ68成绩排序-C++

第一行输入要排序的人的个数n,第二行输入一个整数表示排序的方式,之后n行分别输入他们的名字和成绩,以一个空格隔开。给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩。进阶:时间复杂度:O(nlogn) O(nlogn) ,空间复杂度:O(n) O(n)按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开。数据范围:人数:1≤n≤200 1≤n≤200。注:0代表从高到低,1代表从低到高。都按先录入排列在前的规则处理。

SunshineLu2019的博客 92
上一篇: 华为机试:HJ101 排序-解析
下一篇: 华为机试:HJ80 整型数组合并-解析
cherry6868
博客等级 码龄7年 9粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值