【华为OD机试真题】- 机场航班调度程序(JS解答)

题目描述:
XX市机场停放了多架飞机,每架飞机都有自己的航班号CA3385,CZ6678,SC6508等,航班号的前2个大写字母(或数字)代表航空公司的缩写,后面4个数字代表航班信息。但是XX市机场只有一条起飞跑道,调度人员需要安排目前停留在机场的航班有序起飞。为保障航班的有序起飞,调度员首先按照航空公司的缩写(航班号前2个字母)对所有航班进行排序,同一航空公司的航班再按照航班号的后4个数字进行排序,最终获得安排好的航班的起飞顺序。请编写一段代码根据输入的航班号信息帮助调度员输出航班的起飞顺序。
说明:
航空公司缩写排序按照从特殊符号$ & *,0~9,A~Z排序;

输入描述:
第一行输入航班信息,多个航班号之间用逗号 “,” 分隔,输入的航班号不超过100个。
例如:CA3385,CZ6678,SC6508,DU7523,HK4456,MK0987
备注:航班号为6位长度,后4位为纯数字,不考虑存在后4位重复的场景。

输出描述:
CA3385,CZ6678,DU7523,HK4456,MK0987,SC6508

示例1
输入:
CA3385,CZ6678,SC6508,DU7523,HK4456,MK0987
输出:
CA3385,CZ6678,DU7523,HK4456,MK0987,SC6508

JS参考解题:

function sortFlights(flightStr) {
    // 将输入的字符串按逗号分割成数组
    let flights = flightStr.split(',');

    // 对数组进行排序
    flights.sort((a, b) => {
        // 先比较航空公司的缩写
        let prefixA = a.substring(0, 2);
        let prefixB = b.substring(0, 2);
        if (prefixA !== prefixB) {
            return prefixA.localeCompare(prefixB);
        }

        // 航空公司缩写相同,比较航班信息的数字部分
        let numA = parseInt(a.substring(2), 10);
        let numB = parseInt(b.substring(2), 10);
        return numA - numB;
    });

    // 将排序后的数组元素拼接成一个字符串,并返回
    return flights.join(',');
}

// 测试示例
let input = "CA3385,CZ6678,SC6508,DU7523,HK4456,MK0987";
console.log(sortFlights(input));
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值