三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

华为OD机试真题 新系统 2026-08-05 C++ 实现【智能广播合并台号】

华为OD机试真题 新系统 2026-08-05 C++ 实现【智能广播合并台号】

目录

题目

思路

Code

题目

题目内容:

某社区有多条广播线路,每条线路用一个大写英文字母编号表示,范围为 A 到 Z。当发送广播时,为减少操作次数,会将连续相邻编号且满足一定个数的线路合并为一个区间,用 起始编号-结束编号 的简写形式表示;不连续或不满足个数的线路则单独列出。

合并后的结果要求按字母升序排列,各项之间用一个逗号分隔。

若连续线路编号个数大于等于 3 个,则合并为一个区间,例如 B-F 表示 B、C、D、E、F 五条线路。

若连续线路编号个数等于 2 个,不合并,仍各自单独列出,例如 A,B。

若连续线路编号个数等于 1 个,单独列出。

输入字母可能重复,合并时每个编号只计一次。

输入描述:

第一行输入整数 n,表示需要广播的线路条数,范围为 1 到 26。

第二行输入 n 个大写字母,空格分隔,表示发送广播的线路编号。

输出描述:

输出一个字符串,表示合并后的广播线路列表,按字母升序排列,项间用英文逗号分隔。

样例 1

输入:

6 G B A F D C

输出:

A-D,F,G

说明:

去重排序后为 A B C D F G,A-D

← 返回列表