[华为OD]C卷 机场航班调度 ,XX市机场停放了多架飞机,每架飞机都有自己的航班号100

2024-05-02 10:52

本文主要是介绍[华为OD]C卷 机场航班调度 ,XX市机场停放了多架飞机,每架飞机都有自己的航班号100,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目:

XX市机场停放了多架飞机,每架飞机都有自己的航班号CA3385, CZ6678, SC6508 

等,航班号的前2个大写字母(或数字)代表航空公司的缩写,后面4个数字代表航班信息。

但是XX市机场只有一条起飞用跑道,调度人员需要安排目前停留在机场的航班有序起 

飞。为保障航班的有序起飞,调度员首先按照航空公司的缩写(航班号前2个字母)对所有航班 

进行排序,同一航空公司的航班再按照航班号的后4个数字进行排序最终获得安排好的航班的 

起飞顺序。

请编写一段代码根据输入的航班号信息帮助调度员输出航班的起飞顺序。航空公司缩写排 

序按照从特殊符号$ & *,0~9,A~Z排序;

输入描述

第一行输入航班信息,多个航班号之间用逗号(“,")分隔,输入的航班号不超过100个

例如:

CA3385,CZ6678,SC6508,DU7523,HK4456,MK0987

备注:航班号为6位长度,后4位为纯数字,不考虑存在后4位重复的Q场号

输出描述

CA3385,CZ6678/ DU7523,HK4456,MK0987,SC6508

示例1:

输入

CA3385,CZ6678,SC6508,DU7523,HK4456,MK987

输出

CA3385,CZ6678/ DU7523,HK4456,MK0987,SC6508

说明

输入目前停留在该机场的航班号,输出为按照调度排序后输出的有序的航班号

示例2:

输入

MU1087,CA9908,3U0045,FM1703

输出

3U0045,CA9908,FM1703,MU1087

题解:

明显的自定义排序,也就是把字符串前两个单独比较,后面的再比较,所以可以自定义对象,把字符串前两个和后续拆开进行比较。这个题目中前面缩写排序,和实际字符对应的ascii码排序是一致的,所以可以直接用字符串比较就可以了(如果不一致的话,就需要自己来写比较方案了,那样的话可以定义一个hashMap来弄也可以)

代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;public class Flight {public static void main(String[] args) {Scanner sc = new Scanner(System.in);if(!sc.hasNextLine()){return;}String[] flightInfo = sc.nextLine().split(",");List<FlightName> flightNameList = new ArrayList<>();for(int i=0;i<flightInfo.length;i++){FlightName flightName = new FlightName(flightInfo[i].substring(0,2),flightInfo[i].substring(2));flightNameList.add(flightName);}Collections.sort(flightNameList);StringBuilder sb = new StringBuilder();for(int i =0;i<flightNameList.size();i++){if(i !=0){sb.append(",");}sb.append(flightNameList.get(i).getFlightName());}System.out.println(String.valueOf(sb));}public static class FlightName implements Comparable<FlightName>{private String prefix;private String flightNum;public FlightName(String prefix, String flightNum) {this.prefix = prefix;this.flightNum = flightNum;}@Overridepublic int compareTo(FlightName o){if(o.prefix.equals(this.prefix)){return o.flightNum.compareTo(this.flightNum);}else {return this.prefix.compareTo(o.prefix);}}public String getFlightName(){return this.prefix+this.flightNum;}}
}

验证:

 

这篇关于[华为OD]C卷 机场航班调度 ,XX市机场停放了多架飞机,每架飞机都有自己的航班号100的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/954083

相关文章

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

JAVA虚拟机中 -D, -X, -XX ,-server参数使用

《JAVA虚拟机中-D,-X,-XX,-server参数使用》本文主要介绍了JAVA虚拟机中-D,-X,-XX,-server参数使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录一、-D参数二、-X参数三、-XX参数总结:在Java开发过程中,对Java虚拟机(JVM)的启动参数进

springboot的调度服务与异步服务使用详解

《springboot的调度服务与异步服务使用详解》本文主要介绍了Java的ScheduledExecutorService接口和SpringBoot中如何使用调度线程池,包括核心参数、创建方式、自定... 目录1.调度服务1.1.JDK之ScheduledExecutorService1.2.spring

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

Golang进程权限调度包runtime

关于 runtime 包几个方法: Gosched:让当前线程让出 cpu 以让其它线程运行,它不会挂起当前线程,因此当前线程未来会继续执行GOMAXPROCS:设置最大的可同时使用的 CPU 核数Goexit:退出当前 goroutine(但是defer语句会照常执行)NumGoroutine:返回正在执行和排队的任务总数GOOS:目标操作系统NumCPU:返回当前系统的 CPU 核数量 p