当前位置: 首页 > news >正文

Java 华为真题-选修课

需求:

     现有两门选修课,每门选修课都有一部分学生选修,每个学生都有选修课的成绩,需要你找出同时选修了两门选修课的学生,先按照班级进行划分,班级编号小的先输出,每个班级按照两门选修课成绩和的降序排序,成绩相同时按照学生的学号升序排序。

输入描述

        第一行为第一门选修课学生的成绩

        第二行为第二门选修课学生的成绩,每行数据中学生之间以英文分号分隔,每个学生的学号和成绩以英文逗号分隔,学生学号的格式为8位数字(2位院系编号+入学年份后2位+院系内部1位专业编号+所在班级3位学号),学生成绩的取值范围为[0,100]之间的整数,两门选修课选修学生数的取值范围为[1-2000]之间的整数。

输出描述

        同时选修了两门选修课的学生的学号,如果没有同时选修两门选修课的学生输出NULL,否则,先按照班级划分,班级编号小的先输出,每个班级先输出班级编号(学号前五位),然后另起一行输出这个班级同时选修两门选修课的学生学号,学号按照要求排序(按照两门选修课成绩和的降序,成绩和相同时按照学号升序),学生之间以英文分号分隔。

输入:

01202021,75;01201033,95;01202008,80;01203006,90;01203088,100

01202008,70;01203088,85;01202111,80;01202021,75;01201100,88

输出:

01202

01202008;01202021

01203

01203088

编码:

ublic class SelectCourse {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);//输入字符串数据String[] strs_1 = scanner.nextLine().split(";");String[] strs_2 = scanner.nextLine().split(";");//集合List<Students> list1 = parseData(strs_1);List<Students> list2 = parseData(strs_2);//集合Set<String> sets = new HashSet<>();//调用方法List<Students> list =sameCourse(list1,list2,sets);//sets排序,转换成ListList<String> my =new ArrayList<>(sets);Collections.sort(my);//调用排序方法getComparator(list,my);}/*** 1.获取学生信息** @param strs* @return*/private static List<Students> parseData(String[] strs) {List<Students> list = new ArrayList<>();//循环for (int i = 0; i < strs.length; i++) {//分割字符串String[] ss = strs[i].split(",");//将对象添加集合中list.add(new Students(ss[0], Integer.parseInt(ss[1])));}return list;}/*** (2) 统计同时选修两门选修课的学生信息* @param list1  第一门选修课学生的成绩* @param list2  第二门选修课学生的成绩* @param sets  学号前五位* @return*/public static List<Students> sameCourse(List<Students> list1, List<Students> list2, Set<String> sets) {List<Students> list = new ArrayList<>();//循环比较for (Students stu1 :list1) {for (Students stu2 :list2) {//判断学号是否相同if (stu1.getNo().equals(stu2.getNo())) {//累计成绩和int sum = stu1.getScore() + stu2.getScore();//添加到集合中list.add(new Students(stu1.getNo(), sum));//截取学号前五位-存入set集合中,过滤重复的String strNo = stu1.getNo().substring(0, 5);sets.add(strNo);}}}//判断如果没有,则返回NULLif (list.size() == 0) {System.out.println("NULL");}return list;}/*** (3) 学号按照要求排序(按照两门选修课成绩和的降序,成绩和相同时按照学号升序* @param list* @param sets*/public static void getComparator(List<Students> list,List<String> sets){//外部排序Collections.sort(list,new Comparator<Students>(){@Overridepublic int compare(Students o1, Students o2) {//升序return Integer.valueOf(o1.getNo())-Integer.valueOf(o2.getNo());}});//输出信息for (String str:sets) {System.out.println(str);//对象StringBuilder builder=new StringBuilder();//循环for (Students lls:list) {//是否相等if(str.equals(lls.getNo().substring(0,5))){builder.append(lls.getNo()).append(";"); //添加}}System.out.println(builder.toString());}}}//学生类
class Students {private String no;private int score;.....setXXX and getXXX......public Students(String no, int score) {this.no = no;this.score = score;}@Overridepublic String toString() {return no + "=>" + score;}
}

效果:

 

相关文章:

Java 华为真题-选修课

需求&#xff1a; 现有两门选修课&#xff0c;每门选修课都有一部分学生选修&#xff0c;每个学生都有选修课的成绩&#xff0c;需要你找出同时选修了两门选修课的学生&#xff0c;先按照班级进行划分&#xff0c;班级编号小的先输出&#xff0c;每个班级按照两门选修课成绩和的…...

Invalid access token: Invalid header string: ‘utf-8‘ codec can‘t decode byte

报错&#xff1a;在运行一个txt文档时报Invalid access token: Invalid header string: ‘utf-8’ codec can’t decode byte 原因&#xff1a;文档编码方式的原因&#xff0c;电脑默认的是UFT-8格式的编码 解决方法&#xff1a;用notepad改一下文档编码就好...

Java 中将多个 PDF 文件合并为一个 PDF

一.前言 我们将从以下两个方面向您展示如何将多个PDF文件合并为一个PDF&#xff1a; 1. 将文件中的多个 PDF 合并为单个 PDF 2. 将流中的多个 PDF 合并为单个 PDF 1. 了解 Spire.PDF 库 要在 Java 中合并 PDF 文件&#xff0c;我们将使用Spire.PDF 库。Spire.PDF for Java 是…...

python经典百题之水仙花数

题目&#xff1a;打印出所有的“水仙花数”&#xff0c;所谓“水仙花数”是指一个三位数&#xff0c;其各位数字立方和等于该数 本身。例如&#xff1a;153是一个“水仙花数”&#xff0c;因为1531的三次方&#xff0b;5的三次方&#xff0b;3的三次方。 方法一&#xff1a;暴…...

jvm的调优工具

1. jps 查看进程信息 2. jstack 查看进程的线程 59560为进程id 产生了死锁就可以jstack查看了 详细用途可以看用途 3. jmap 如何使用dump文件看下 查看 4.jstat 空间占用和次数 5. jconsole可视化工具 各种使用情况&#xff0c;以及死锁检测 6. visualvm可视化工具…...

C语言--字符串旋转笔试题

C语言–字符串旋转笔试题 文章目录 C语言--字符串旋转笔试题一、字符串左旋1.1 思路11.2 思路1代码1.3 思路21.4 思路2代码 二、字符串旋转结果判断2.1 思路12.2 思路2 一、字符串左旋 实现一个函数&#xff0c;可以左旋字符串中的k个字符。 例如&#xff1a; ABCD左旋一个字…...

IntelliJ IDEA使用_常规设置

文章目录 版本说明主题设置取消检查更新依赖自动导入禁止import xxx.*、允许import内部类显示行号、方法分割线、空格代码提示&#xff08;匹配所有字母&#xff09;自定义注释颜色添加头部注释自定义字体设置字符编码关联本地GitJDK编译版本Maven配置Tomcat配置代码注释设置头…...

ResponseBodyAdvice 获取参数

废话不多说&#xff0c;简练&#xff0c;一针见血&#xff0c;解决问题&#xff0c;才是最好的。 首先肯定是重写了这个beforeBodyWrite方法 重点来了&#xff0c;获取请求参数&#xff1a; request.getBody()返回一个inputStream流&#xff0c;这里你可以 使用很多方法把这个…...

人力资源服务升级正当时,法大大助力佩信集团加速数字化

人力资源服务业是现代服务业的一个重要门类&#xff0c;在促进就业创业、提供人才服务方面发挥重要作用。同时面对产业转型升级、平台经济快速发展、企业用工成本提高等新形势&#xff0c;发展人力资源服务业对于促进社会化就业、更好发挥我国人力资源优势、服务经济社会发展具…...

UG\NX二次开发 二维向量相加

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: UG\NX二次开发 二维向量相加 效果: 代码: #include "me.hpp"void doIt() {const double vec1[2] = { 1.0,2.0 };const double vec2[2] = { 2.0,2.…...

RabbitMQ深入 —— 持久化和发布确认

前言 前面的文章荔枝梳理了如何去配置RabbitMQ环境并且也介绍了两种比较简单的运行模式&#xff0c;在这篇文章中荔枝将会继续梳理有关RabbitMQ的持久化机制以及发布确认模式的相关知识&#xff0c;希望能够帮助到大家~~~ 文章目录 前言 一、持久化 1.1 队列持久化 1.2 消息…...

人脸识别三部曲

人脸识别三部曲 首先看目录结构图像信息采集 采集图片.py模型训练 训练模型.py人脸识别 人脸识别.py效果 首先看目录结构 引用文121本 opencv │ 采集图片.py │ 训练模型.py │ 人脸识别.py │ └───trainer │ │ trainer.yml │ └───data │ └──…...

【Linux网络编程】Socket-TCP实例

netstat -nltp 无法用read函数读取UDP套接字的数据&#xff0c;因为UDP是面向数据报&#xff0c;而TCP是面向数据流。 客户端不需要 bind&#xff0c;listen&#xff0c;accept&#xff0c;但是客户端需要connect&#xff0c;connect会自动做bind工作。 #include <sys/sock…...

<OpenCV> 边缘填充

OpenCV边缘填充 1、边缘填充类型 enum cv::BorderTypes ORDER_CONSTANT iiiiii|abcdefgh|iiiiiii with some specified i -常量法&#xff0c;常熟值填充&#xff1b; BORDER_REPLICATE aaaaaa|abcdefgh|hhhhhhh -复制法&#xff0c;复制边缘像素&#xff1b; BORDER_R…...

【视觉SLAM入门】7.3.后端优化 基于KF/EKF和基于BA图优化的后端,推导及举例分析

"时间倾诉我的故事" 1. 理论推导2. 主流解法3. 用EKF估计状态3.1. 基于EKF代表解法的感悟 4. 用BA法估计状态4.1 构建最小二乘问题4.2 求解BA推导4.3 H的稀疏结构4.4 根据H稀疏性求解4.5 鲁棒核函数4.6 编程注意 5.总结 引入&#xff1a; 前端里程计能给出一个短时间…...

Docker概念通讲

目录 什么是Docker&#xff1f; Docker的应用场景有哪些&#xff1f; Docker的优点有哪些&#xff1f; Docker与虚拟机的区别是什么&#xff1f; Docker的三大核心是什么&#xff1f; 如何快速安装Docker&#xff1f; 如何修改Docker的存储位置&#xff1f; Docker镜像常…...

PHP请求API接口案例采集电商平台数据获取淘宝/天猫优惠券查询示例

优惠券查询API接口对于用户和商家来说具有重要作用&#xff0c;可以方便地获取优惠券信息&#xff0c;进行优惠券搜索和筛选&#xff0c;参与活动和促销推广&#xff0c;提供数据分析和决策支持&#xff0c;提升用户体验和忠诚度&#xff0c;为商家增加销售额和市场竞争力。 t…...

计算机网络:三次握手与四次挥手

摘取作者&#xff1a;拓跋阿秀 三次握手 三次握手&#xff08;Three-way Handshake&#xff09;其实就是指建立一个TCP连接时&#xff0c;需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后…...

Visual Studio 调试上传文件时自动停止运行的解决方法

进入&#xff1a;选项&#xff0c;项目和解决方案&#xff0c;Web项目&#xff0c; 找到在浏览器窗口关闭时停止调试程序&#xff0c;在调试停止时关闭浏览器 将它不要勾关闭&#xff0c;然后重新启动下Visual Studio&#xff0c;上传文件时就可以调试了...

使用scp命令失败出错

使用scp命令失败出错&#xff0c;无反应。 解决&#xff1a; 1.使用ifconfig查看目标主机公网IP地址 ifconfig需使用公网ip 2.配置免密登录 可参考 远程登录ssh ssh-copy-id root目标主机ip再次尝试scp命令。 SCP&#xff08;Secure Copy&#xff09;是一个用于在本地主机和…...

kafka增加磁盘或者分区,topic重分区

场景&#xff1a;kafka配置文件log.dirs增加了几个目录&#xff0c;但是新目录没有分区数据写入&#xff0c;所以打算进行重分区一下。 1.生成迁移计划 进入kafka/bin目录 新建 topic-reassign.json,把要重分区的topic按下面格式写。 { "topics": [{ …...

SpringMVC系列(五)之JSR303和拦截器

目录 一. JSR303 1.1 JSR303是什么 1.2 为什么要使用JSR303 1.3 JSR303常用注解 1.4 JSR303快速入门 1. 导入相关pom依赖 2. 配置校验规则 3. 入门示例 二. SpringMVC的拦截器 2.1 什么是拦截器 2.2 拦截器与过滤器的区别 2.3 拦截器工作原理 2.4 入门示例 1. 创建…...

LCP 01.猜数字

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;LCP 01. 猜数字 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 遍历比较即可。 解题代码&#xff1a; class Solution {public int game(int[] guess, int[] answer) {int res0;for(int …...

智能小车开发

1.材料 店铺&#xff1a;店内搜索页-risym旗舰店-天猫Tmall.com 1.四个小车轮子 2.四个直流减速电机 3.两节18650锂电池&#xff08;每节3.7V&#xff09;&#xff0c;大概电压在7.4V左右&#xff0c;电压最好不要超过12V不然会损坏电机驱动 4.一个18650锂电池盒 5.一个L…...

RDMA性能测试工具集preftest_README

文章目录 1 概述2 安装3 测试方法说明4 测试说明5 运行测试所有测试的通用选项延迟测试选项带宽测试选项ib_send_lat&#xff08;发送延迟测试&#xff09;和 ib_send_bw&#xff08;发送带宽测试&#xff09;的选项ib_atomic_lat&#xff08;原子延迟测试&#xff09;和 ib_at…...

墨天轮专访星环科技刘熙:“向量热”背后的冷思考,Hippo如何打造“先发”优势?

导读&#xff1a; 深耕技术研发数十载&#xff0c;坚持自主可控发展路。星环科技一路砥砺前行、坚持创新为先&#xff0c;建设了全面的产品矩阵&#xff0c;并于2022年作为首个独立基础软件产品公司成功上市。星环科技在今年的向星力•未来技术大会上发布了分布式向量数据库Tra…...

逆向-beginners之非递归

/* * 非递归 */ void f() { } void main() { f(); } #if 0 /* * intel */ 0000000000001129 <f>: 1129: f3 0f 1e fa endbr64 112d: 55 push %rbp 112e: 48 89 e5 mov %rsp,%…...

Spring for Apache Kafka概述和简单入门

一、概述 Spring for Apache Kafka 的高级概述以及底层概念和可运行的示例代码。 二、准备工作 注意:进行工作开始之前至少要有一个 Apache Kafka 环境 2.1、依赖 使用 Spring Boot<dependency><groupId>org.springframework.kafka</groupId><artifact…...

基于SSM+Vue的医院医患管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

再次理解Android账号管理体系

目录 ✅ 0. 需求 &#x1f4c2; 1. 前言 &#x1f531; 2. 使用 2.1 账户体系前提 2.2 创建账户服务 2.3 操作账户-增删改查 &#x1f4a0; 3. 源码流程 ✅ 0. 需求 试想&#xff0c;自己去实现一个账号管理体系&#xff0c;该如何做呢&#xff1f; ——————————…...

工作室网站开发/seo实战

移动或者重命名 ​ 使用方法rename 也有同步方法 ​ 内置三个参数 第一个参数是旧的路径和文件名 ​ 第二个参数是你要移动的位置和新的文件名 ​ 第三个参数是回调函数 回调内置一个参数 参数是错误 const fs require(fs);/*使用方法rename 也有同步方法内置三个参数 …...

转载到wordpress/站长工具百度

向我提问律图巴音郭楞律师解答问题&#xff1a;4233条一、纳税额确定&#xff1a;合伙企业的投资者按照合伙企业的全部生产经营所得和合伙协议约定的分配比例确定应纳税所得额&#xff0c;合伙协议没有约定分配比例的&#xff0c;以全部生产经营所得和合伙人数量平均计算每个投…...

网站banner图切换效果/免费域名 网站

前言 在了解了卷积网络之后&#xff0c;不难发现&#xff0c;基本上所有的卷积网络都是按照&#xff1a;"卷积层->池化层->卷积层->池化层…->全连接层->输出层"这样的形式进行堆叠排列的。这样的层级结构在Keras中使用Sequential模型来实现极为方便…...

在郑州做网站/东莞百度推广排名优化

2019独角兽企业重金招聘Python工程师标准>>> JDK版本&#xff1a;jdk-6u45-linux-x64.bin &#xff08;下载网址&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/index.html&#xff0c;请到Previous Releases里面找&#xff09; Hadoop版本&…...

网站建设代理平台/seo网页优化培训

OSI&#xff0c;TCP/IP&#xff0c;五层协议的关系图&#xff1a; OSI七层模型 应用层—① 基于TCP的应用层协议&#xff1a;HTTP&#xff08;80&#xff09; / HTTPS&#xff08;默认端口443&#xff09;&#xff0c;Telnet / SSH &#xff0c;SMTP&#xff0c;FTP&#xff…...

无锡网络公司网站建设/职业培训热门行业

一、安装环境 1、本机系统&#xff1a;Windows 10 Pro&#xff08;64位&#xff09; 2、Node.js&#xff1a;node-v10.14.2-x64.msi&#xff08;64位&#xff09; 二、安装Node.js步骤 1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/ 2、选安装目录进行安…...