华为OD机试 - 出错的或电路 - 二进制 - (Java 2023 B卷 100分)

news2024/9/29 9:23:56

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

某生产门电路的厂商发现某一批次的或门电路不稳定,具体现象为计算两个二进制数的或操作时,第一个二进制中某两个比特位会出现交换,交换的比特位置是随机的,但只交换这两个为,其他位不变。

很明显,这个交互可能会影响最终的或结果,也可能不会有影响。

为了评估影响和定位出错的根因,工程师需要研究在各种交换的可能下,最终的或结果发生改变的情况有多少种。

二、输入描述

第一行有一个正整数N,其中 1 <=N <=1000000。
第二行有一个长为N的而二进制数,表示与电路的第一输入数,即会发生比特交换的输入数。
第三行有一个长为N的二进制数,表示与电路的第二个输入数。注意第二个输入数不会发生比特交换。

三、输出描述

输出只有一个整数,表示会影响或结果的交换方案个数。

四、解题思路

  1. 输入的二进制数的位数;
  2. 输入第一个二进制数;
  3. 输入第二个二进制数;
  4. 统计两个二进制数中 0 和 1 的个数;
  5. 遍历两个二进制数的每一位;
  6. 如果 bin1 的该位是 0;
    • 统计 bin1 中 0 的个数加 1;
    • 如果 bin2 的该位也是 0,统计 bin2 中 0 的个数加 1;
  7. 如果 bin1 的该位是 1;
    • 统计 bin1 中 1 的个数加 1;
    • 如果 bin2 的该位是 0,统计 bin2 中 1 的个数加 1;
  8. 计算会影响或结果的交换方案个数。

五、Java算法源码

package com.guor.od;

import java.util.*;

public class OdTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 输入的二进制数的位数
        int n = sc.nextInt();
        // 第一个二进制数
        String bin1 = sc.next();
        // 第二个二进制数
        String bin2 = sc.next();
        // 统计两个二进制数中 0 和 1 的个数
        int cnt0Bin1 = 0;
        int cnt1Bin1 = 0;
        int cnt0Bin2 = 0;
        int cnt1Bin2 = 0;
        // 遍历两个二进制数的每一位
        for (int i = 0; i < n; i++) {
            // 如果 bin1 的该位是 0
            if (bin1.charAt(i) == '0') {
                // 统计 bin1 中 0 的个数加 1
                cnt0Bin1++;
                // 如果 bin2 的该位也是 0,统计 bin2 中 0 的个数加 1
                if (bin2.charAt(i) == '0') {
                    cnt0Bin2++;
                }
            } else { // 如果 bin1 的该位是 1
                // 统计 bin1 中 1 的个数加 1
                cnt1Bin1++;
                // 如果 bin2 的该位是 0,统计 bin2 中 1 的个数加 1
                if (bin2.charAt(i) == '0') {
                    cnt1Bin2++;
                }
            }
        }
        // 计算会影响或结果的交换方案个数
        System.out.println(cnt0Bin2 * cnt1Bin1 + cnt1Bin2 * cnt0Bin1 - cnt0Bin2 * cnt1Bin2);
    }
}

六、效果展示

1、输入

3
010
110

2、输出

1

3、说明

原本011011和110110的或结果是111111,但是第一个输入输发生如下比特交换会影响最终计算结果:

  1. j交换第1个比特和第2个比特,第一个输入输变为110,计算结果不变。
  2. 交换第1个比特和第3个比特,第一个输入数变为010,计算结果为110,计算结果不变
  3. 交换第2个比特和第3个比特,第一个输入个数变为001,计算结果为111,计算结果不变,故只有一种交换会改变结果。

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【路灯照明问题】【2022Q4 100分】,感谢fly晨发现这个问题,并提供更优质的算法

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/906409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue2.0+webpack 引入字体文件(eot,ttf,woff)

webpack.base.config.js 需要配置 {test:/\/(woff2?|eot|ttf|otf)(\?.*)?$/,loader: url-loader,options: {limit: 10000,name: utils.assetsPath(fonts/[name].[hash:7].[ext])}} 如果 Vue2.0webpack3.6引入字体文件&#xff08;eot&#xff0c;ttf&#xff0c;woff&…

成都爱尔林江院长解析离焦眼镜为何与众不同

近视是影响我国国民尤其是青少年眼健康的重大公共卫生问题。因病因不明确&#xff0c;且尚无有效的治疗方法&#xff0c;如何有效控制近视发生和增长备受关注。国家出台了儿童近视防控方案&#xff0c;社会上也出现了各种近视防控方法及策略。周边离焦技术&#xff0c;算得上近…

快速上手Linux核心命令:Linux的文本编辑器vi和vim

前言 上一篇中已经预告&#xff0c;我们这篇主要说Linux中vi/vim 编辑器。它是我们使用Linux系统不可缺少的工具&#xff0c;学会了&#xff0c;你就可以在Linux世界里畅通无阻&#xff0c;学废了&#xff0c;常用操作你也会了&#xff0c;也是够用了&#xff0c;O(∩_∩)O 简…

javascript初学者可以做些什么小东西或者项目来练手?

前言 可以试一下面的一些项目&#xff0c;可能有一些比较复杂&#xff0c;可以学习一下代码的结构思路&#xff0c;希望对你有帮助~ 实用工具向 1.Exchart Star&#xff1a;55.6k Exchart提供了大量精美的图表&#xff0c;只有你想不到&#xff0c;没有你在它上面找不到的&…

了解 JSON 格式

一、JSON 基础 JSON&#xff08;JavaScript Object Notation&#xff0c;JavaScript 对象表示法&#xff09;是一种轻量级的数据交换格式&#xff0c;JSON 的设计目的是使得数据的存储和交换变得简单。 JSON 易于人的阅读和书写&#xff0c;同时也易于机器的解析和生成。尽管 J…

8月17日上课内容 LVS+Keepalived群集

本章结构 Keepalived概述 keepalived工作原理 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案&#xff0c;可以解决静态路由出现的单点故障问题 在一个LVS服务集群中通常有主服务器 (MASTER)和备份服务器(BACKUP)两种角色的服务器&#xff0c;但是对外表现为一个虚拟…

为什么选择elasticsearch分布式搜索引擎

文章目录 &#x1f52d;什么是elasticsearch&#x1f320;ELK技术栈&#x1f320;elasticsearch和lucene&#x1f320;为什么不是其他搜索技术&#xff1f; &#x1f52d;总结 &#x1f52d;什么是elasticsearch elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常…

mini木马实践和防护方法

一、实验目的&#xff1a; 1.了解木马的实现原理 2.了解基本的防护方法 二、预备知识&#xff1a; 木马通常有两个可执行程序&#xff1a;一个是客户端&#xff0c;即控制端&#xff1b;另一个是服务端&#xff0c;即被控制端。植入被种者电脑的是“服务器”部分&#xff0c;而…

linux如何使用keepalived配置VIP

VIP常用于负载均衡的高可用&#xff0c;使用VIP可以给多个主机绑定一个IP&#xff0c;这样&#xff0c;当某个负载应用挂了之后&#xff0c;可以自动切到另一个负载。 我这里是在k8s环境中做的测试&#xff0c;集群中有6个节点&#xff0c;我给140和141两个节点配置VIP。 1. 安…

「2024」预备研究生mem-立体几何截面模型代绝对值得一次和二次函数

一、立体几何截面模型&代绝对值得一次和二次函数 二、练习题 凑配换元

Mysql5.7.36主从同步实操

主库创建同步账户 #创建备份的账户 CREATE USER backup192.168.32.1 IDENTIFIED BY backup123; #给账户授予备份的权限 GRANT REPLICATION SLAVE ON *.* TO backup192.168.32.1; #刷新权限 FLUSH PRIVILEGES;停止主库 配置主库需要的备份参数 打开my.ini文件&#xff0c;配置…

Unity C# 之 Task、async和 await 、Thread 基础使用的Task的简单整理

Unity C# 之 Task、async和 await 、Thread 基础使用的Task的简单整理 目录 Unity C# 之 Task、async和 await 、Thread 基础使用的Task的简单整理 一、Task、async和 await 、Thread 基础概念 1、线程&#xff0c;多线程 2、Task 3、async &#xff08;await &#xff09;…

第四章:树形结构的关联式容器(map+set)

系列文章目录 文章目录 系列文章目录前言1、关联式容器与序列式容器1.1 键值对 2、set的介绍3、multiset的介绍3.1 接口count与容器multiset 4、map的介绍4.1 接口insert4.2 operator[]和at 5、multimap的介绍 前言 根据应用场景的不桶&#xff0c;STL总共实现了两种不同结构的…

PBI 之 Query数据导入、处理

PBI梳理数据流程 首先通过Excel 插件 Power Query、Power Pivot处理数据&#xff0c;然后使用Power Desktop导入处理好的数据进行展示。最后发布到在线网站。 一、导入数据 二、处理数据 如下&#xff0c;进入到Power Query编辑器界面 数据--查询&连接 界面区 界面区右键…

ChatGPT产品发布时间表-了解别人家的创业节奏

ChatGPT产品节点-2023年7月末-长期更新 ChatGPT风靡全球&#xff0c;创造了科技史上的发展奇迹。它可以根据简短的提示生成文章、代码等&#xff0c;极大地提高了生产力。许多大品牌正在尝试利用它来生成广告和营销文字。OpenAI也在此技术上大举投资。以下是ChatGPT产品发布时间…

共创无线物联网数字化新模式|协创数据×企企通采购与供应链管理平台项目成功上线

近日&#xff0c;全球无线物联网领先者『协创数据技术股份有限公司』&#xff08;以下简称“协创数据”&#xff09;SRM采购与供应链项目全面上线&#xff0c;并于近日与企企通召开成功召开项目上线总结会。 基于双方资源和优势&#xff0c;共同打造了物联网特色的数字化采购供…

运动耳机哪款好用、适合运动的耳机推荐

如今&#xff0c;蓝牙耳机不仅是手机的最佳伴侣&#xff0c;也成为了运动爱好者的必备装备。但是&#xff0c;在如此众多的蓝牙耳机中&#xff0c;你是否对选购感到困惑呢&#xff1f;实际上&#xff0c;选择适合运动的蓝牙耳机需要考虑许多因素&#xff0c;如舒适度、稳固性、…

STM32L151C8T6 芯片数据手册

1. 芯片型号含义 2. Flash&#xff1a; 64KB 3. keil 配置ST-Link 烧录程序 4. keil 选择Flash 烧录算法 5. 系统主频 32Mhz 6. 时钟树 clock tree

2009年下半年 软件设计师 上午试卷3

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

数字化赋能高质量施工,成企业创新转型新方向

建筑行业是一个需要投入大量资金、能源消耗大、风险高且劳动力密集的行业&#xff0c;传统施工管理方式存在着“无法实时控制进度、无法实时控制质量、材料浪费、常需返工、安全事件频发”等问题。 为了自身的转型升级&#xff0c;也为了响应国家战略规划落地对建筑行业提出的要…