尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
8.5华为OD机试真题 新系统 - 智能广播合并台号 (Java/Py/C/C++/Js/Go)
智能广播合并台号2026 华为OD机试真题 8月5日华为OD上机新系统考试真题 100 分题型点击查看华为 OD 机试真题完整目录2026最新华为OD机试新系统卷 双机位C卷 真题题库目录全覆盖题库 逐点算法考点详解题目描述某社区有多条广播线路每条线路用一个大写英文字母编号表示 (A-Z)。当发送广播时为减少操作次数会将连续相邻编号且满足一定个数的线路合并为一个区间用“起始编号-结束编号”的简写形式表示不连续或不满足个数的线路则单独列出。合并后的结果要求按字母升序排列各项之间用一个逗号分隔。具体合并规则如下若连续的线路编号个数 ≥3 个则合并为一个区间格式为 起始-结束如 B-F 表示 B、C、D、E、F 五条线路若连续线路编号个数 2 个不合并仍各自单独列出如 AB 两个编号写成 A,B若连续线路编号个数 1 个单独列出如 G不连续的线路之间各自处理互不影响输入描述第一行输入整数n表示需要广播的线路条数。第二行输入n个大写字母空格分隔表示发送广播的线路编号。字母可能重复但合并时每个编号只计一次。输出描述输出一个字符串表示合并后的广播线路列表按字母升序排列项间用逗号分隔。约束1≤n≤26字母范围为A-Z仅大写。输入字母可能有重复需去重后排序再合并。示例1输入6 G B A F D C输出A-D,F,G说明字母去重排序后为 A B C D F G。其中 A-D 连续 4 个≥3合并为 A-DF 和 G 相邻但仅 2 个不合并写成 F,G。最终结果 A-D,F,G。示例2输入3 A C B输出A-C说明字母排序后为 ABC三字母连续个数3≥3合并为 A-C。示例3输入4 A A B B输出A,B说明去重后仅剩 AB虽然相邻但只有 2 个字母不满足 ≥3 的合并条件因此各自单独列出。解题思路核心思想先去重并排序再按字母顺序扫描。只要当前一段是连续字母就向后扩展段长达到 3 及以上时压缩成起始-结束否则逐个输出。算法步骤读取n和第二行的字母列表。用集合去重再排序。从左到右扫描排序后的字母数组找到每一段连续区间。若区间长度大于等于 3输出首字母-尾字母否则逐个字母输出。各片段用逗号连接。复杂度分析设去重后字母个数为m则m 26。时间复杂度O(n log n)主要来自排序。空间复杂度O(n)用于存储去重后的字母。Javaimportjava.util.*;publicclassMain{staticStringsolve(intn,String[]letters){// 去重并排序后续只需要扫描连续区间TreeSetCharactersetnewTreeSet();for(Strings:letters){if(!s.isEmpty()){set.add(s.charAt(0));}}ListCharactercharsnewArrayList(set);ListStringresultnewArrayList();inti0;while(ichars.size()){intji;// 找到一个连续递增区间while(j1chars.size()chars.get(j1)chars.get(j)1){j;}if(j-i13){result.add(chars.get(i)-chars.get(j));}else{for(intki;kj;k){result.add(String.valueOf(chars.get(k)));}}ij1;}returnString.join(,,result);}publicstaticvoidmain(String[]args){ScannerscannernewScanner(System.in);intnscanner.hasNextInt()?scanner.nextInt():0;String[]lettersnewString[n];for(inti0;in;i){letters[i]scanner.next();}System.out.println(solve(n,letters));}}Pythondefsolve(n,channels):# 去重排序后只需按连续字母段进行合并charssorted(set(channels))result[]i0whileilen(chars):jiwhilej1len(chars)andord(chars[j1])ord(chars[j])1:j1ifj-i13:result.append(f{chars[i]}-{chars[j]})else:forkinrange(i,j1):result.append(chars[k])ij1return,.join(result)nint(input().strip()or0)channelsinput().split()print(solve(n,channels))JavaScriptconstreadlinerequire(readline);functionsolve(n,channels){// 先去重排序再扫描连续区间constcharsArray.from(newSet(channels)).sort();constresult[];leti0;while(ichars.length){letji;while(j1chars.lengthchars[j1].charCodeAt(0)chars[j].charCodeAt(0)1){j;}if(j-i13){result.push(${chars[i]}-${chars[j]});}else{for(letki;kj;k){result.push(chars[k]);}}ij1;}returnresult.join(,);}constrlreadline.createInterface({input:process.stdin,output:process.stdout});constlines[];rl.on(line,linelines.push(line));rl.on(close,(){constnlines.length0?Number(lines[0].trim()):0;constchannelslines.length1?lines[1].trim().split(/\s/).filter(Boolean):[];console.log(solve(n,channels));});C#includebits/stdc.husingnamespacestd;stringsolve(intn,constvectorcharletters){// 去重后排序再按连续段压缩输出vectorcharcharsletters;sort(chars.begin(),chars.end());chars.erase(unique(chars.begin(),chars.end()),chars.end());vectorstringresult;inti0;while(i(int)chars.size()){intji;while(j1(int)chars.size()chars[j1]chars[j]1){j;}if(j-i13){string t;t.push_back(chars[i]);t.push_back(-);t.push_back(chars[j]);result.push_back(t);}else{for(intki;kj;k){result.push_back(string(1,chars[k]));}}ij1;}string ans;for(intidx0;idx(int)result.size();idx){if(idx)ans.push_back(,);ansresult[idx];}returnans;}intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);intn;cinn;vectorcharletters;for(inti0;in;i){string s;cins;letters.push_back(s[0]);}coutsolve(n,letters)endl;return0;}Gopackagemainimport(bufiofmtossortstrings)funcsolve(nint,channels[]string)string{// 去重并排序之后只处理连续字母段set:map[string]struct{}{}for_,ch:rangechannels{ifch!{set[ch]struct{}{}}}chars:make([]string,0,len(set))forch:rangeset{charsappend(chars,ch)}sort.Strings(chars)result:make([]string,0)i:0forilen(chars){j:iforj1len(chars)chars[j1][0]chars[j][0]1{j}ifj-i13{resultappend(result,chars[i]-chars[j])}else{fork:i;kj;k{resultappend(result,chars[k])}}ij1}returnstrings.Join(result,,)}funcmain(){reader:bufio.NewReader(os.Stdin)varnintfmt.Fscan(reader,n)channels:make([]string,0,n)fori:0;in;i{varsstringfmt.Fscan(reader,s)channelsappend(channels,s)}fmt.Println(solve(n,channels))}C语言#includestdio.h#includestdlib.h#includestring.hintcmpChar(constvoid*a,constvoid*b){return(*(constchar*)a)-(*(constchar*)b);}char*solve(intn,charchannels[][4]){// 去重排序后再把连续字母段压缩成区间staticcharunique[26];intm0;for(inti0;in;i){charcchannels[i][0];intfound0;for(intj0;jm;j){if(unique[j]c){found1;break;}}if(!found)unique[m]c;}qsort(unique,m,sizeof(char),cmpChar);staticcharans[256];ans[0]\0;intfirst1;inti0;while(im){intji;while(j1munique[j1]unique[j]1)j;charbuf[16];if(j-i13){sprintf(buf,%c-%c,unique[i],unique[j]);if(!first)strcat(ans,,);strcat(ans,buf);first0;}else{for(intki;kj;k){sprintf(buf,%c,unique[k]);if(!first)strcat(ans,,);strcat(ans,buf);first0;}}ij1;}returnans;}intmain(){intn;if(scanf(%d,n)!1)return0;charchannels[26][4];for(inti0;in;i){scanf(%3s,channels[i]);}printf(%s\n,solve(n,channels));return0;}完整用例用例16 G B A F D C用例23 A C B用例34 A A B B用例41 Z用例52 M N用例63 X Y Z用例78 A B C E F H I J用例810 A B B C D E F G H I用例95 A C E G I用例1026 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z文章目录**智能广播合并台号**题目描述输入描述输出描述示例1示例2示例3解题思路核心思想算法步骤复杂度分析JavaPythonJavaScriptCGoC语言完整用例用例1用例2用例3用例4用例5用例6用例7用例8用例9用例10
RELATED

相关推荐

Axios GET请求二次封装:从参数处理到缓存策略的工程化实践

Axios GET请求二次封装:从参数处理到缓存策略的工程化实践

1. 项目概述:为什么我们还在折腾axios的二次封装?如果你在前端圈子里待过一阵子,尤其是和Vue或React打交道,那axios这个名字你肯定不陌生。它几乎是现代前端项目里处理HTTP请求的“标配”。但有意思的是,几乎每个项目&…

📅 2026/10/7 5:22:40
2026最新版 validrive 大佬汉化版,好评如潮!U盘容量检测的工具

2026最新版 validrive 大佬汉化版,好评如潮!U盘容量检测的工具

下载地址 夸克网盘分享 百度网盘 请输入提取码 一、前言 日常使用电脑、移动存储设备时常会遇到两类典型问题:低价大容量 U 盘虚标扩容、长期使用后注册表冗余垃圾堆积导致系统卡顿。近期整理了两款轻量化、无捆绑的工具,分别解决存储真伪检测与系统…

📅 2026/10/9 0:44:12
学术英语词汇学习:核心词汇与高效记忆方法

学术英语词汇学习:核心词汇与高效记忆方法

1. 学术英语词汇学习的重要性作为一名在学术圈摸爬滚打多年的研究者,我深知学术英语词汇是科研工作的基石。记得刚读研究生时,第一次阅读英文文献就遇到了大量专业术语的"下马威"——那些看似熟悉却含义迥异的单词,让我在文献理解上…

📅 2026/9/12 23:10:49
MORE NEWS

更多资讯

📰

工业企业数据质量治理从救火到工程化:监控规则、责任矩阵与问题闭环落地指南

聊到工业企业数据质量治理,很多人的第一反应是“先建个数据治理平台再说”。但我这几年在制造业、能源、快消工厂都踩过一遍后,越来越确信:数据质量治理的瓶颈从来不在工具,而在体系。工具买回来只是开始,真正难的是把…

📰

协同教学课程信息服务系统:SpringBoot+Vue毕设设计与实现

去年带学生做毕业设计,几乎人手一个“XX管理系统”,SpringBoot Vue,增删改查,页面翻来翻去就那么几套。看多了之后你会发现,这类题目真正拉开差距的往往不是代码量,而是选题里那句不起眼的限定语。就拿“面…

📰

工业企业数据质量治理进阶:从清洗到体系化管控

1. 为什么说工业企业数据质量治理已经进入进阶阶段这两年国内制造业数字化推进的速度确实快,越来越多的工厂完成了基础信息化建设——ERP、MES、SCADA、WMS基本都上线了,生产现场的自动化改造也做得七七八八,很多企业甚至攒了好几年的工业数据…

📰

汽车防撞梁优化设计开题报告:碰撞安全、仿真与多目标优化关键点

一份“汽车防撞梁优化设计”的开题报告,几乎可以说是车辆工程专业里最具“性价比”的课题之一。它表面上是写一个研究计划,实际上考验的是你对结构力学、材料科学、碰撞安全法规和有限元仿真这几门硬课的综合掌握程度。很多同学容易把这个题目写成一篇科…

📰

美赛数学建模实战:模型选择与代码实现指南

1. 先搞清楚一件事:美赛到底考的是模型还是代码?很多第一次打美赛的同学都会陷入一个误区:以为这是一场“数学竞赛”,于是花大量时间推导公式、证明定理,结果论文写得像期末作业,代码却跑不出一个像样的结果…

📰

Claude Opus 5.5 焚诀实战:CLAUDE.md 与 Sub-agent 编排指南

1. 这次“焚诀”到底更新了什么:从标题拆解到核心变化“焚诀”这个词在圈子里其实是个戏称,指的是那种一旦用上就回不去、算力烧得心疼但产出质量高到离谱的配置组合。这次 Claude Opus 5.5 被冠上“最新焚诀”,核心不是模型本身跑分涨了多少…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬