华为OD机试 新系统真题 【不同Tag类型统计】
不同Tag类型统计(C/Go/C/Js/Java/Py)题解华为OD机试新系统真题 华为OD上机考试新系统真题 7月22号 100分题型华为OD机试新系统真题目录点击查看: 华为OD机试新系统真题题库目录机考题库 算法考点详解题目内容给定一个数组元素为数字数组的内容表示多个连续的TLVtag-length-value关于TLV单个TLV具备以下特征tag占位1个数组元素代表类型length占位1个数组元素代表长度且长度值大于0value占位后面连续的length个数组元素tlv长度限制单个TLV所占的数组元素必须是4的倍数不足的部分可用任意数字补齐数值取值范围0-99例如单个TLV数组2130第一个数字2是tag第二个数字1是length第三个数字3是value第四个数字0是补齐现在要求把给定的数组进行分析解析出整个数组中存在多少种不同类型的tag如果解析过程出现数组元素不符合规范则返回0。输入描述数组元素不超过10000TLV的总数不超过1000输出描述解析出的不同tag类型的数量若格式错误则输出0样例1输入2,1,3,0,3,1,3,0,0输出0说明格式不对样例2输入2,1,3,0,3,1,3,0输出2说明格式正确2个Tag类型分别是2、3题解思路模拟初始化index 0从前往后遍历依次确定各个部分的值以及进行合法性检验tag[index]为该TLV的tag判断index 1 n确保length片段没有丢失并得到length的值通过length的值可以得到整个TLV的长度为tagLen (2 length 3) / 4 * 4,并检查index tagLen n确保剩余片段是否能组成完成TLV检验[index, index tagLen -1]的值是否满足[0,99]使用集合或者数组保存出现过的tag更新index tagLen重复执行以上策略按照2模拟处理输入tag无不合法情况下输出tag种类即可。c#includebits/stdc.h#includestring#includevectorusingnamespacestd;// 通用 切割函数 函数 将字符串str根据delimiter进行切割vectorintsplit(conststringstr,conststringdelimiter){vectorintresult;size_t start0;size_t endstr.find(delimiter);while(end!string::npos){result.push_back(stoi(str.substr(start,end-start)));startenddelimiter.length();endstr.find(delimiter,start);}// 添加最后一个部分result.push_back(stoi(str.substr(start)));returnresult;}intcountTagCategories(vectorinttag){// 用于tag去重setints;intntag.size();intindex0;while(indexn){// 不完整不包含lengthif(index1n){return0;}intlengthtag[index1];// 不符合length 0要求if(length0){return0;}// 补齐之后tag的实际长度inttagLen(2length3)/4*4;// 剩余长度无法满足完整tag要求if(indextagLenn){return0;}// 检验值范围是否合法for(intjindex;jindextagLen;j){if(tag[j]0||tag[j]99){return0;}}s.insert(tag[index]);indextagLen;}returns.size();}intmain(){string input;getline(cin,input);vectorinttagsplit(input,,);coutcountTagCategories(tag);return0;}Javaimportjava.util.*;publicclassMain{staticintcountTagCategories(int[]tag){// 用于tag去重SetIntegersetnewHashSet();intntag.length;intindex0;while(indexn){// 不完整不包含lengthif(index1n){return0;}intlengthtag[index1];// 不符合length 0要求if(length0){return0;}// 补齐之后tag的实际长度inttagLen((2length3)/4)*4;// 剩余长度无法满足完整tag要求if(indextagLenn){return0;}// 检验值范围是否合法for(intjindex;jindextagLen;j){if(tag[j]0||tag[j]99){return0;}}set.add(tag[index]);indextagLen;}returnset.size();}publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);Stringinputsc.nextLine();String[]arrinput.split(,);int[]tagnewint[arr.length];for(inti0;iarr.length;i){tag[i]Integer.parseInt(arr[i]);}System.out.println(countTagCategories(tag));}}Python# 用于tag去重defcountTagCategories(tag):sset()nlen(tag)index0whileindexn:# 不完整不包含lengthifindex1n:return0lengthtag[index1]# 不符合length 0要求iflength0:return0# 补齐之后tag的实际长度tagLen((2length3)//4)*4# 剩余长度无法满足完整tag要求ifindextagLenn:return0# 检验值范围是否合法forjinrange(index,indextagLen):iftag[j]0ortag[j]99:return0s.add(tag[index])indextagLenreturnlen(s)input_strinput().strip()taglist(map(int,input_str.split(,)))print(countTagCategories(tag))JavaScriptconstreadlinerequire(readline);constrlreadline.createInterface({input:process.stdin,output:process.stdout});functioncountTagCategories(tag){// 用于tag去重constsetnewSet();constntag.length;letindex0;while(indexn){// 不完整不包含lengthif(index1n){return0;}constlengthtag[index1];// 不符合length 0要求if(length0){return0;}// 补齐之后tag的实际长度consttagLenMath.floor((2length3)/4)*4;// 剩余长度无法满足完整tag要求if(indextagLenn){return0;}// 检验值范围是否合法for(letjindex;jindextagLen;j){if(tag[j]0||tag[j]99){return0;}}set.add(tag[index]);indextagLen;}returnset.size;}rl.on(line,function(line){consttagline.split(,).map(Number);console.log(countTagCategories(tag));});Gopackagemainimport(fmtstrconvstrings)funccountTagCategories(tag[]int)int{// 用于tag去重set:make(map[int]bool)n:len(tag)index:0forindexn{// 不完整不包含lengthifindex1n{return0}length:tag[index1]// 不符合length 0要求iflength0{return0}// 补齐之后tag的实际长度tagLen:((2length3)/4)*4// 剩余长度无法满足完整tag要求ifindextagLenn{return0}// 检验值范围是否合法forj:index;jindextagLen;j{iftag[j]0||tag[j]99{return0}}set[tag[index]]trueindextagLen}returnlen(set)}funcmain(){varinputstringfmt.Scanln(input)parts:strings.Split(input,,)tag:make([]int,len(parts))fori,s:rangeparts{tag[i],_strconv.Atoi(s)}fmt.Println(countTagCategories(tag))}C语言#includestdio.h#includestdlib.h#includestring.h#defineMAXN100000// 通用 切割函数 函数 将字符串str根据delimiter进行切割intsplit(char*str,constchar*delimiter,intnums[]){intcnt0;char*tokenstrtok(str,delimiter);while(token!NULL){nums[cnt]atoi(token);tokenstrtok(NULL,delimiter);}returncnt;}intcountTagCategories(inttag[],intn){// 用于tag去重intvis[100]{0};intindex0;while(indexn){// 不完整不包含lengthif(index1n){return0;}intlengthtag[index1];// 不符合length 0要求if(length0){return0;}// 补齐之后tag的实际长度inttagLen((2length3)/4)*4;// 剩余长度无法满足完整tag要求if(indextagLenn){return0;}// 检验值范围是否合法for(intjindex;jindextagLen;j){if(tag[j]0||tag[j]99){return0;}}vis[tag[index]]1;indextagLen;}intans0;for(inti0;i100;i){if(vis[i]){ans;}}returnans;}intmain(){charinput[MAXN];fgets(input,sizeof(input),stdin);input[strcspn(input,\n)]\0;inttag[MAXN];intnsplit(input,,,tag);printf(%d\n,countTagCategories(tag,n));return0;}

相关新闻

DeepSeek-Math-V2:数学推理AI的神经符号混合架构解析

DeepSeek-Math-V2:数学推理AI的神经符号混合架构解析

1. DeepSeek-Math-V2:数学推理领域的突破性进展作为一名长期关注AI数学推理领域的技术从业者,我见证了从早期符号计算系统到现代神经定理证明器的演进历程。DeepSeek-Math-V2的出现,标志着数学推理AI进入了一个全新阶段——它不仅能够处理常规…

2026/7/23 11:47:22阅读更多 →
概率剪刀手:Unigram 如何从海量碎片中“剪”出大模型的最优词表

概率剪刀手:Unigram 如何从海量碎片中“剪”出大模型的最优词表

Unigram 语言模型分词(Unigram Language Model Tokenization)是 SentencePiece 库中除 BPE 之外的另一核心算法,也是当前大模型分词的另一大流派。与 BPE 的自底向上合并不同,Unigram 采用自顶向下的概率剪枝策略,从庞…

2026/7/23 11:47:22阅读更多 →
BQ28Z610数据闪存配置详解:从数据格式到校准与算法实战

BQ28Z610数据闪存配置详解:从数据格式到校准与算法实战

1. 项目概述:从数据格式到电池管理实战在嵌入式开发和电池管理系统(BMS)领域,我们经常和一堆十六进制数、数据手册里的寄存器表格打交道。很多人觉得这部分工作枯燥,无非就是“照着手册填参数”。但在我十多年的硬件开…

2026/7/23 11:47:22阅读更多 →
计算机软考资料包考试大纲、专项题集、真题库类专项、科目资料等免费下载

计算机软考资料包考试大纲、专项题集、真题库类专项、科目资料等免费下载

计算机软考资料包考试大纲、专项题集、真题库类专项、科目资料等免费下载【领取资料】:https://docs.qq.com/aio/DV1NpZGpqaGpPdnpZ26年架构师软考高级26全国计算机等级考试资料合集2026年中级-系统集成项目管理师2026软考高级信息系统项目管理师计算机考试资料包【…

2026/7/23 13:15:48阅读更多 →
iPad Pro M2运行Win11 Pro的UTM虚拟机完整指南

iPad Pro M2运行Win11 Pro的UTM虚拟机完整指南

1. 项目背景与核心挑战 在iPad Pro 2022(M2芯片)上运行完整版Windows 11 Pro 23H2,这个看似不可能的任务通过UTM虚拟机成为了现实。作为首批在iPadOS 16.3.1系统上实现全速虚拟化的实践者,我想分享这个突破性方案的完整实现路径。…

2026/7/23 13:15:48阅读更多 →
2026 秋新版|小初高全套教辅资料免费领(持续更新)

2026 秋新版|小初高全套教辅资料免费领(持续更新)

2026 秋新版|小初高全套教辅资料免费领(持续更新)【领取资料】:https://docs.qq.com/aio/DV1NpZGpqaGpPdnpZ一、资料包含内容覆盖小学、初中、高中全学段,2026 春 / 秋新版同步更新,资源类型齐全无缺漏&…

2026/7/23 13:15:48阅读更多 →
低成本4K蓝光备份:固件破解与数据解密实战

低成本4K蓝光备份:固件破解与数据解密实战

1. 项目概述:低成本解锁4K蓝光备份方案 去年帮朋友修复一张珍贵婚礼蓝光碟时,我发现市售千元级蓝光光驱竟无法读取加密数据。这个意外促使我研究出这套200元级光驱改造方案,其核心在于LibreDrive固件破解——通过刷写特殊固件解除光驱厂商的A…

2026/7/23 13:15:48阅读更多 →
别急着买软路由!用群晖Docker玩转OpenWrt,实测家庭网络优化效果

别急着买软路由!用群晖Docker玩转OpenWrt,实测家庭网络优化效果

群晖Docker部署OpenWrt全指南:家庭网络优化实战测评 当家庭网络开始出现卡顿、设备连接数激增时,很多人的第一反应是购置专业软路由。但你可能忽略了手边那台群晖NAS的潜力——通过Docker容器运行OpenWrt,不仅能省下额外硬件开支,还能获得接近专业设备的网络管理能力。本文…

2026/7/23 13:15:48阅读更多 →
SolidWorks设计树显示优化与教学应用实践

SolidWorks设计树显示优化与教学应用实践

1. 项目背景与需求解析 "SW设计树选项显示"这个功能模块在工程设计和教育培训领域具有重要价值。作为一名从业多年的工业设计软件培训师,我经常遇到学员对SolidWorks设计树操作不熟悉的问题。设计树作为SolidWorks的核心交互界面,其显示选项的…

2026/7/23 13:13:48阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/22 18:55:50阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/22 18:55:50阅读更多 →