华为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
