当前位置: 首页 > article >正文

华为OD机试真题 新系统-等距二进制判断(C/C++/Py/Java/Js/Go)

等距二进制判断华为OD机试新系统真题 华为OD上机考试新系统真题 5月20号 100分题型华为OD机试新系统真题目录点击查看: 华为OD机试真题题库目录机考题库 算法考点详解题目内容对于一个二进制数我们定义相邻两个1 11之间0 00的数量为他们两个之间的距离如1001011 10010111001011相邻两个1 11之间的距离从左到右分别为2 22、1 11、0 00。现在如果一个整数转化为二进制数满足如下条件包含不少于3 33个1 11所有相邻数字1 11之间的距离相同 我们称之为等距二进制如21 2121二进制为10101 1010110101、60 6060二进制为111100 111100111100、146 146146二进制为10010010 1001001010010010。输入描述现给定一个输入整数0 00n nn (2 22^31 3131-1 11)输出描述如果n nn是等距二进制请输出它的距离如果不是等距二进制请输出− 1 -1−1样例1输入21输出1说明二进制为10101 1010110101距离为1 11样例2输入60输出0说明二进制为111100 111100111100距离为0 00样例3输入146输出2说明二进制为10010010 1001001010010010距离为2 22样例4输入2输出-1说明二进制为10 1010不满足条件1 11非等距二进制题解思路二进制处理可以通过从低位到高位遍历给定n来判断是不是等距二进制初始定义count 0记录出现1的次数distance -1等距二进制数1的距离定义last -1用来记录处理过程上一个1出现的位置。index记录当前index位置可以通过二进制移位进行二进制遍历结束条件为n 0,具体处理为通过与算法获取当前index位的值value n 1value 0可直接跳过如果当前value 1, 进行count 1.接下来再处理等距逻辑判断逻辑如下如果last -1,说明首次出现1更新lastindex即可。如果last ! -1说明之前低位已存在1如果此时distance -1则确定等距为distance index - last -1如果distance ! -1, 则判断index - last - 1是否distance相同不相同则可以直接确定不为等距二进制直接返回-1处理完等距逻辑之后更新last index对n 1移位处理index按照3处理之后如果count 3,不满足条件1直接返回-1.否则返回distance即可c#includeiostream #includevector #includestring #include utility #include sstream #includealgorithm #includecmath #includemap using namespace std; int getEqualBinDistance(int n) { // 二进制1的数量 int count 0; // 二进制位 int index 0; int distance -1; // 上一个1的位置 int last -1; while (n 0) { // 最末尾二进制值 int value n 1; if (value 1) { count; if (last ! -1) { if (distance -1) { distance index - last - 1; } else { // 不是等距 if (index - last-1 ! distance) { return -1; } } } last index; } index; n 1; } // 1数量小于3 if (count 3) { return -1; } return distance; } int main() { int n; cin n; int res getEqualBinDistance(n); cout res; }Javaimport java.util.*; public class Main { public static int getEqualBinDistance(int n) { // 二进制1的数量 int count 0; // 二进制位 int index 0; int distance -1; // 上一个1的位置 int last -1; while (n 0) { // 最末尾二进制值 int value n 1; if (value 1) { count; if (last ! -1) { if (distance -1) { distance index - last - 1; } else { // 不是等距 if (index - last - 1 ! distance) { return -1; } } } last index; } index; n 1; } // 1数量小于3 if (count 3) { return -1; } return distance; } public static void main(String[] args) { Scanner sc new Scanner(System.in); int n sc.nextInt(); int res getEqualBinDistance(n); System.out.print(res); } }PythondefgetEqualBinDistance(n):# 二进制1的数量count0# 二进制位index0distance-1# 上一个1的位置last-1whilen0:# 最末尾二进制值valuen1ifvalue1:count1iflast!-1:ifdistance-1:distanceindex-last-1else:# 不是等距ifindex-last-1!distance:return-1lastindex index1n1# 1数量小于3ifcount3:return-1returndistance nint(input())resgetEqualBinDistance(n)print(res)JavaScriptconstreadlinerequire(readline);constrlreadline.createInterface({input:process.stdin,output:process.stdout});functiongetEqualBinDistance(n){// 二进制1的数量letcount0;// 二进制位letindex0;letdistance-1;// 上一个1的位置letlast-1;while(n0){// 最末尾二进制值letvaluen1;if(value1){count;if(last!-1){if(distance-1){distanceindex-last-1;}else{// 不是等距if(index-last-1!distance){return-1;}}}lastindex;}index;n1;}// 1数量小于3if(count3){return-1;}returndistance;}rl.on(line,function(line){constnNumber(line);constresgetEqualBinDistance(n);console.log(res);rl.close();});GopackagemainimportfmtfuncgetEqualBinDistance(nint)int{// 二进制1的数量count:0// 二进制位index:0distance:-1// 上一个1的位置last:-1forn0{// 最末尾二进制值value:n1ifvalue1{countiflast!-1{ifdistance-1{distanceindex-last-1}else{// 不是等距ifindex-last-1!distance{return-1}}}lastindex}indexn1}// 1数量小于3ifcount3{return-1}returndistance}funcmain(){varnintfmt.Scan(n)res:getEqualBinDistance(n)fmt.Print(res)}C语言#includestdio.hintgetEqualBinDistance(intn){// 二进制1的数量intcount0;// 二进制位intindex0;intdistance-1;// 上一个1的位置intlast-1;while(n0){// 最末尾二进制值intvaluen1;if(value1){count;if(last!-1){if(distance-1){distanceindex-last-1;}else{// 不是等距if(index-last-1!distance){return-1;}}}lastindex;}index;n1;}// 1数量小于3if(count3){return-1;}returndistance;}intmain(){intn;scanf(%d,n);intresgetEqualBinDistance(n);printf(%d,res);return0;}

相关文章:

华为OD机试真题 新系统-等距二进制判断(C/C++/Py/Java/Js/Go)

等距二进制判断 华为OD机试新系统真题 华为OD上机考试新系统真题 5月20号 100分题型 华为OD机试新系统真题目录点击查看: 华为OD机试真题题库目录|机考题库 算法考点详解 题目内容 对于一个二进制数,我们定义相邻两个 111 之间 000 的数量为他们两个…...

新手入门指南,五分钟完成Taotoken账号注册与第一个API调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 新手入门指南,五分钟完成Taotoken账号注册与第一个API调用 对于初次接触大模型API的开发者来说,如何快速上…...

百考通AI:答辩PPT智能生成,覆盖从开题到终答的全流程,让毕业答辩更从容

毕业答辩是学术生涯的关键一战,一份逻辑清晰、专业美观的PPT是顺利通关的核心保障,却也让无数毕业生熬夜奋战:从提炼研究核心到规划答辩流程,从设计页面排版到打磨讲稿,繁琐的准备工作常常让人焦头烂额。百考通AI&…...

3分钟上手Bifrost:跨平台三星固件下载与解密终极指南

3分钟上手Bifrost:跨平台三星固件下载与解密终极指南 【免费下载链接】Bifrost Cross-platform tool for downloading Samsung mobile device firmware. 项目地址: https://gitcode.com/gh_mirrors/sa/Bifrost 还在为三星设备刷机找不到官方固件而烦恼吗&…...

智慧铁路列车车辆和人员检测数据集VOC+YOLO格式5059张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):5059标注数量(xml文件个数):5059标注数量(txt文件个数):5059标注类别…...

企业知识资产化的三步走路线

企业知识资产化的三步走路线品质工程师老张每周一最头疼的事,就是准备品质例会的周报。上周的例会上,生产总监随口问了一句:“B12产线上个月出现的表面缺陷,之前有没有类似的案例?处理结果怎么样?”老张当场…...

Markdown怎么转换成txt?5种方法+在线工具对比2026最全指南

在日常工作中,Markdown格式的文件越来越常见,但有时候我们需要将其转换为纯文本格式来适应不同的应用场景。本文将为你详细介绍md转txt的多种方法,包括本地转换、在线工具、编程方案等,帮助你快速找到最适合的解决方案。为什么需要…...

从B站视频到高品质音频:BilibiliDown音频提取全攻略

从B站视频到高品质音频:BilibiliDown音频提取全攻略 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/…...

Steam Deck Tools 终极指南:Windows 掌机的完美伴侣

Steam Deck Tools 终极指南:Windows 掌机的完美伴侣 【免费下载链接】steam-deck-tools (Windows) Steam Deck Tools - Fan, Overlay, Power Control and Steam Controller for Windows 项目地址: https://gitcode.com/gh_mirrors/st/steam-deck-tools 还在为…...

终极macOS Windows启动盘制作工具:WinDiskWriter完整指南

终极macOS Windows启动盘制作工具:WinDiskWriter完整指南 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & Legac…...

收藏!程序员转AI工程师的3条死路+3条真路(内含2026年最新就业方向)

本文揭示了2026年程序员转AI工程师的3条死路和3条真路。死路包括从零学ML训练想做研究员、靠Prompt工程当主修、装AI App做评测自媒体,这些路径因入门方向被误导而难以成功。真路则包括用现有领域跳板转AI应用工程、AI Infra/MLOps方向、AI Agent工程师方向&#xf…...

王晓玲越“激进”,长安马自达越尴尬:油改电没份,新能源没量

【文/深度评车&财经三剑客】当长安马自达执行副总裁王晓玲喊出"马自达电动化转型,合资中最激进"时,市场的反应却是一阵沉默——因为这句话,怎么听都像是一种自我安慰。 王晓玲的底气有二:一是长安马自达坚持不做油改…...

Vulhub 中的 Cacti-CVE-2025-24367

0x00 前言先看结果吧,复现是成功了,但是没拿到shell,和我想的不一样。漏洞原理:Cacti是一款利用RRDTool数据存储和图形化功能的完整网络图形化解决方案。在Cacti 1.2.28及以前版本中存在一个命令注入漏洞,该漏洞允许已…...

教育机构搭建ai编程辅导平台时如何通过taotoken管理多学生密钥

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 教育机构搭建AI编程辅导平台时如何通过Taotoken管理多学生密钥 在AI编程辅导平台的构建中,教育机构常常面临一个核心的…...

3种方法彻底解决Realtek RTL8125 2.5GbE网卡驱动兼容性问题

3种方法彻底解决Realtek RTL8125 2.5GbE网卡驱动兼容性问题 【免费下载链接】realtek-r8125-dkms A DKMS package for easy use of Realtek r8125 driver, which supports 2.5 GbE. 项目地址: https://gitcode.com/gh_mirrors/re/realtek-r8125-dkms 你是否正在为Linux系…...

【限时解密】Midjourney范戴克印相私藏LUT包+预设Prompt库(仅开放48小时):含ISO 200/400/800三档真实胶片响应曲线

更多请点击: https://kaifayun.com 第一章:Midjourney范戴克印相的美学溯源与数字复刻逻辑 范戴克印相(Van Dyke Brown process)诞生于19世纪末,是一种以硝酸银、柠檬酸铁铵与酒石酸钾钠配制感光液,经紫外…...

数环通iPaaS流程引擎中断恢复机制设计:快照 + 消息驱动实现无缝续跑

一个无法回避的问题 做iPaaS自动化引擎开发的同学迟早会遇到这个问题:流程跑到一半断了,怎么办? 不是那种代码bug导致的异常退出——那种靠异常处理就行。我说的是更真实、更棘手的场景: 服务发版需要滚动重启,机器上还…...

获 800 万美元融资,MAU 超 40 万!「shapes」AI 社交能否成下一代聊天应用?

《「shapes」获 800 万美元种子轮融资,AI 助力社交“入场”,能否成下一代聊天应用?》这几天,我在「shapes」随机进了个陌生群聊,发了句 "hello",三秒内就有 AI 角色接上,回了串热情有…...

深入WCH USB主机IP:对比CH58x与CH32系列寄存器差异及CherryUSB适配心得

深入解析WCH USB主机IP:寄存器差异与CherryUSB适配实战 1. WCH USB主机IP架构概览 沁恒微电子(WCH)的CH58x/CH57x与CH32V/CH32F系列微控制器虽然采用不同的USB主机IP设计,但在协议栈层面保持了高度兼容性。这种设计哲学体现了硬件…...

宝丽来胶片模拟不等于加噪点!深度拆解Polaroid SX-70光学特性与MJ v6渲染引擎的4层映射偏差,附12组可直接复用的--sref哈希值

更多请点击: https://intelliparadigm.com 第一章:宝丽来SX-70胶片的光学本质与历史语境 宝丽来SX-70胶片并非传统意义上的“静态感光材料”,而是一套高度集成的自显影光学化学系统。其核心在于多层涂布结构中嵌入的镜面反射层、碱性催化剂囊…...

Codex 适配国产信创环境完整部署指南(深度技术篇)

摘要随着国内信创产业全面落地推进,基于大代码模型的智能编码助手 Codex,在国产化服务器、操作系统、CPU 架构环境下的适配、编译、部署、调优成为企业数字化转型过程中的刚需技术痛点。本文从架构原理、国产硬件适配、操作系统兼容、依赖编译、容器化部…...

从CubeMX到AD:为你的STM32F4项目创建‘带注释’原理图符号的完整指南

从CubeMX到AD:打造STM32F4项目专属原理图符号的工程实践 在嵌入式硬件开发中,原理图符号的清晰度直接影响着团队协作效率和后期维护成本。许多工程师都曾遇到过这样的困境:面对一个标准STM32芯片符号,需要反复查阅数据手册才能确认…...

为Claude Code配置Taotoken聚合API密钥与Base地址避免封号风险

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为Claude Code配置Taotoken聚合API密钥与Base地址避免封号风险 在使用Claude Code这类编程助手工具时,开发者有时会遇到…...

如何利用EdiZon实现Switch游戏存档编辑与内存修改的完整指南

如何利用EdiZon实现Switch游戏存档编辑与内存修改的完整指南 【免费下载链接】EdiZon 💡 A homebrew save management, editing tool and memory trainer for Horizon (Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/ed/EdiZon EdiZon是一款专…...

从原理图到PCB:STM32最小系统外围电路布局布线实战避坑指南

从原理图到PCB:STM32最小系统外围电路布局布线实战避坑指南 在嵌入式硬件开发中,设计一个可靠的STM32最小系统PCB远比绘制原理图更具挑战性。许多开发者能够正确连接原理图符号,却在将设计转化为实际电路板时遭遇各种问题——从莫名其妙的复位…...

焊接风管制造技术前沿:厂家工艺揭秘

在现代工业与建筑领域,焊接风管扮演着至关重要的角色。从工业厂房的通风换气,到商业建筑的空气调节,焊接风管都起着保障空气流通、维持环境舒适的关键作用。其质量的优劣直接影响到整个通风系统的性能和使用寿命。优质的焊接风管不仅能有效降…...

每天节省20分钟:淘宝淘金币自动化脚本的终极效率革命

每天节省20分钟:淘宝淘金币自动化脚本的终极效率革命 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 你是否…...

GitHub Desktop汉化神器:3分钟让英文界面变中文

GitHub Desktop汉化神器:3分钟让英文界面变中文 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 【GitHub桌面客户端中文汉化】 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 还在为GitHub Desktop的英文…...

3分钟终极指南:用trackerslist让你的BT下载速度提升5倍

3分钟终极指南:用trackerslist让你的BT下载速度提升5倍 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist 还在为BT下载速度慢而烦恼吗?trackerslist项…...

5分钟极速上手:通达信缠论插件ChanlunX让技术分析智能化

5分钟极速上手:通达信缠论插件ChanlunX让技术分析智能化 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 还在为复杂的缠论分析而头疼吗?面对K线图中的顶底分型、笔段划分、中枢识别…...