华为OD机试真题2022Q4 A + 2023 B卷(JavaJavaScript)

article/2025/10/22 17:25:42

在这里插入图片描述
大家好,我是哪吒。

五月份之前,如果你参加华为OD机试,收到的应该是2022Q4或2023Q1,这两个都是A卷题。

5月10日之后,很多小伙伴收到的是B卷,那么恭喜你看到本文了,抓紧刷题吧。B卷新题库正在更新中

华为机试有三道题,第一道和第二道属于简单题,分值为100分,第三道为困难题,分值为200分,总分400分,150分钟考试时间

华为的考试平台是牛客网,大家可以提前去牛客网找到华为机考门槛进行练习,主要是熟悉平台操作练习一下怎么处理输入输出哈!后面我也分享了很多牛客网上的华为OD试题。

华为机考的分数是按照测试用例通过的比例来确定的,比如第一题满分100,如果你提交代码后显示测试用例通过率为80%,那么这道题你就只能得80分,所以其实成绩你在考试的时候就心知肚明了!

150分是华为统一的通过分数线。但各部门的要求又不一样,通常非目标院校的分数要求更高些。300+是高分,260+是较为安全的分数。总之分数越高越高,对后续的定级、综面、HR审批都有益处。

一般来说对接你的HR会问你啥时候可以笔试,你觉得准备的ok了就会发你一个机考链接,这个机考链接的有效期为7天,你在这七天时间内找个时间参加考试即可!华为OD机考会影响薪资的,300分以上和300分一下的价格是不一样的,所以我建议大家好好准备争取超过300分,能拿高分就拿高分。

机试没考过的话,会有半年的冷冻期。

为什么我说华为机考并不难,原因很简单,因为这个考试是有题库的!你在进入机考页面的时候网页上会显示正在组卷中,其实就是去题库里找两个简单题一道复杂题。既然这是一场有题库的考试,那我们最重要的当然是获取最全面的题库对吧,这个大家放心我已经帮大家整理好了,未来也会持续更新!

我觉得准备机考前的第一件事是选择一门合适的编程语言,华为机考对编程语言是没有限定的,你可以选择自己最喜欢的编程语言。考虑到大部分华为OD的应聘者都是技术基础较为薄弱甚至非科班的同学,我还是满建议大家使用Java来应付机考还有后面的手撕代码的,当然如果你会JS、Python、C++的话也可以用来考试。

如果基于我提供的题库开始认认真真刷题,不开玩笑的说遇到原题是肯定的,正常情况下遇到两道原题是不难的,很多同学是直接三题全部命中!因为华为题库三个月会更新一部分新题进来,所以大家尽量不要在新题刚刚更新的时候去做,建议在新题发布一个月后再考我感觉命中两道很正常的!

下面,哪吒将华为OD机试真题归归类,让大家一目而了然。

关于订阅华为OD机试真题的后续问题

  1. 订阅专栏后,专栏内的文章都可看,以后还会继续更新新题
  2. 每道题都包含题目、解题思路、代码详解(关键行包含详细注释)、代码运行截图(保证代码100%正确,通过率100%);
  3. 已经订阅的小伙伴,推荐新人订阅可享 8 折优惠,私信我即可;

在考试的时候,最好不要用CSDN专栏里的源码去答题,因为华为OD机试是有查重的,这个一定要注意!最好是改一改变量名称,加一加注释,改一改逻辑顺序,掌握答题思路才是关键,下面的题中我都加了详细的答题思路,代码中也有详细的注释说明代码运行是100%正确无误的,每一题都有样例测试,全网独一份

如果你刚刚参加完机试考试,欢迎提供真题到哪吒这里,直接红包转账收题。

很多考过的小伙伴,总结了宝贵的经验,多刷题,先易后难,前期积累自信,后期逐一突破,效果最佳。

下面从最新题开始分享、按时间倒序、按难以程度正序排序,做到刷题的循序渐进。

2023 5月 B卷 “新加题”(100分值)

1、华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路

2、华为OD机试真题 Java 实现【支持优先级的队列】【2023 B卷 100分】

3、华为OD机试真题 Java 实现【IPv4地址转换成整数】【2023 B卷 100分】

4、华为OD机试真题 Java 实现【字符统计】【2023 B卷 100分】

5、华为OD机试真题 Java 实现【食堂供餐】【2023 B卷 考生抽中题】,附详细解题思路

6、华为OD机试真题(Java),跳跃游戏 II(100%通过+复盘思路)

7、华为OD机试真题 Java 实现【拼接URL】【2023 B卷 100分】,附详细解题思路

8、华为OD机试真题 Java 实现【找终点】【2023 B卷 100分】,附详细解题思路

9、华为OD机试真题 Java 实现【猴子爬山】【2023 B卷 100分】,附详细解题思路

10、华为OD机试真题 Java 实现【矩阵最大值】【2023 B卷 100分】,附详细解题思路

🏆更多华为OD真题,查看华为OD机试(JAVA)真题(A卷+B卷)

2022Q4 100分

1、华为OD机试真题 Java 实现【报数游戏】【2022Q4 100分】

2、华为OD机试真题 Java 实现【水仙花数】【2022Q4 100分】

3、华为OD机试真题 Java 实现【检查是否存在满足条件的数字组合】【2022Q4 100分】

4、华为OD机试真题 Java 实现【素数之积】【2022Q4 100分】

5、华为OD机试真题 Java 实现【分奖金】【2022Q4 100分】

6、华为OD机试真题 Java 实现【尼科彻斯定理】【2022Q4 100分】,附详细解题思路

7、华为OD机试真题 Java 实现【数组合并】【2022Q4 100分】

8、华为OD机试真题 Java 实现【放苹果】【2022Q4 100分】

9、华为OD机试真题 Java 实现【计算数组中心位置】【2022Q4 100分】

10、华为OD机试真题 Java 实现【最长的连续子序列】【2022Q4 100分】

🏆更多华为OD真题,查看华为OD机试(JAVA)真题(A卷+B卷)

下面分享一道“2022Q4 100分 相对开音节”的解题思路

1、题目描述

相对开音节构成的结构为辅音+元音(aeiou)+辅音(r除外)+e,常见的单词有life,time,woke,coke,joke,note,nose,communicate,use,gate,same,late等。

给定一个字符串,以空格为分隔符,反转每个单词中的字母,若单词中包含如数字等其他非字母时不进行反转。

反转后计算其中含有相对开音节结构的子串个数(连续的子串中部分字符可以重复)。

2、输入描述

字符串,以空格分割的多个单词,字符串长度<10000,字母只考虑小写。

3、输出描述

含有相对开音节结构的子串个数,注:个数<10000

4、解题思路

  1. 定义一个列表aeiouList,存储元音字母(a, e, i, o, u);
  2. 从输入中读取字符串,并按空格分割为多个单词,存储在数组arr中;
  3. 初始化total为0,表示含有相对开音节结构的子串个数;
  4. 遍历input数组中的每个单词s;
  5. 对于每个单词,首先判断是否只包含字母,如果不是,则跳过该单词;
  6. 如果单词只包含字母,则调用checkKai方法计算该单词中含有相对开音节结构的子串个数,并累加到total中;
    • 反转每个单词中的字母;
    • 每4个字符取出一个子串;
    • 判断字符串是否是相对开音节,total++;
      • 相对开音节构成的结构为辅音+元音(aeiou)+辅音(r除外)+e;
      • 定义一个元音下角标yuanIndex;
      • 找到元音的下角标;
      • 通过“相对开音节构成的结构为辅音+元音(aeiou)+辅音(r除外)+e”判断是否是相对开音节;
  7. 输出total作为结果。

5、Java算法源码

// 定义一个列表aeiouList,存储元音字母(a, e, i, o, u)
private static final List<Character> aeiouList = new ArrayList<>();static {char[] f1 = {'a', 'e', 'i', 'o', 'u'};for (char c : f1) {aeiouList.add(c);}
}public static void main(String[] args) {Scanner sc = new Scanner(System.in);// 从输入中读取字符串,并按空格分割为多个单词,存储在input数组中String[] arr = sc.nextLine().split(" ");// 初始化total为0,表示含有相对开音节结构的子串个数int total = 0;// 遍历input数组中的每个单词contentfor (String s : arr) {boolean flag = true;for (int j = 0; j < s.length(); j++) {// 对于每个单词,首先判断是否只包含字母,如果不是,则跳过该单词if (s.charAt(j) < 'a' || s.charAt(j) > 'z') {flag = false;break;}}// 如果单词只包含字母,则调用checkKai方法计算该单词中含有相对开音节结构的子串个数,并累加到total中if (flag) {total += checkKai(s);}}// 输出total作为结果System.out.println(total);
}/*** 计算该单词中含有相对开音节结构的子串个数,并累加到total中*/
private static int checkKai(String str) {// 反转每个单词中的字母StringBuilder reversalBuilder = new StringBuilder();for (int i = str.length() - 1; i >= 0; i--) {reversalBuilder.append(str.charAt(i));}int left = 0;int right = 0;int total = 0;String temp = "";while (right <= str.length()) {// 每4个字符取出一个子串temp = reversalBuilder.substring(left, right);if (temp.length() < 4) {right++;continue;}// 字符串是否是相对开音节if (check(temp)) {total++;}left++;right++;}return total;
}/*** 字符串是否是相对开音节*/
private static boolean check(String str) {// 相对开音节构成的结构为辅音+元音(aeiou)+辅音(r除外)+eif (!aeiouList.contains(str.charAt(0)) && 'e' == str.charAt(str.length() - 1)) {// 元音下角标int yuanIndex = 0;for (int i = 1; i < str.length() - 1; i++) {// 找到元音的下角标if (aeiouList.contains(str.charAt(i))) {yuanIndex = i;}// 相对开音节构成的结构为辅音+元音(aeiou)+辅音(r除外)+eif (yuanIndex != 0 && !aeiouList.contains(str.charAt(i)) && str.charAt(i) != 'r' && i > yuanIndex) {return true;}}}return false;
}

6、JavaScript算法源码

function getXDKYJCount(str) {// 定义一个列表aeiouList,存储元音字母(a, e, i, o, u)const aeiouList = ['a', 'e', 'i', 'o', 'u'];// 从输入中读取字符串,并按空格分割为多个单词,存储在数组arr中const arr = str.split(' ');// 初始化total为0,表示含有相对开音节结构的子串个数let total = 0;// 遍历input数组中的每个单词for (let i = 0; i < arr.length; i++) {const content = arr[i];let flag = true;for (let j = 0; j < content.length; j++) {// 对于每个单词,首先判断是否只包含字母,如果不是,则跳过该单词if (content[j] < 'a' || content[j] > 'z') {flag = false;break;}}// 如果单词只包含字母,则调用checkKai方法计算该单词中含有相对开音节结构的子串个数,并累加到total中if (flag) {total += checkKai(content);}}// 输出total作为结果return total;
}/*** 计算该单词中含有相对开音节结构的子串个数,并累加到total中*/
function checkKai(str) {// 反转每个单词中的字母const strTemp = str.split('').reverse().join('');let left = 0;let right = 0;let total = 0;let tem = '';while (right <= str.length) {tem = strTemp.substring(left, right);// 每4个字符取出一个子串if (tem.length < 4) {right++;continue;}// 字符串是否是相对开音节if (check(tem)) {total++;}left++;right++;}return total;
}/*** 字符串是否是相对开音节*/
function check(str) {const aeiouList = ['a', 'e', 'i', 'o', 'u'];// 相对开音节构成的结构为辅音+元音(aeiou)+辅音(r除外)+eif (!aeiouList.includes(str[0]) && str[str.length - 1] === 'e') {// 元音下角标let temYuan = 0;for (let i = 1; i < str.length - 1; i++) {// 找到元音的下角标if (aeiouList.includes(str[i])) {temYuan = i;}// 相对开音节构成的结构为辅音+元音(aeiou)+辅音(r除外)+eif (temYuan !== 0 && !aeiouList.includes(str[i]) && str[i] !== 'r' && i > temYuan) {return true;}}}return false;
}

7、效果展示

(1)efil emit ekow反转之后是life,time,woke,都是相对开音节子串,因此返回结果3。

在这里插入图片描述

(2)efil emit 5ekow反转之后是life,time,5ekow,因5ekow含非英文字符所以未反转,因此返回结果2。

在这里插入图片描述


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

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

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://chatgpt.dhexx.cn/article/wibkZuml.shtml

相关文章

EntityWrapper的in用法

EntityWrapper<UserLife> wrapper new EntityWrapper<>(); wrapper.eq("is_valid", 1); wrapper.in("life_name", "ge,edu,career"); List<UserLife> userLabelList userLabelService.selectList(wrapper); in的第二个参数…

QueryWrapper

官方文档&#xff1a;https://mp.baomidou.com/guide/wrapper.html#querywrapper select("id", "name", "age") select(i -> i.getProperty().startsWith("test")) controller中使用的例子

wrapper.and

多条件查询时 如果使用这种的话&#xff0c;会出现只要这个条件成功了&#xff0c;不管你后面或者前面有没有and条件&#xff0c;它都成功&#xff0c; 可以看出来整个条件都在一个括号里面 //创建查询对象LambdaQueryWrapper<PublishWorksRemit> wrapper new Lambd…

MyBatis-Plus使用条件构造器Wrapper

Wrapper &#xff1a;条件构造抽象类&#xff0c;最顶端父类。AbstractWrapper类比较重要。 AbstractWrapper类是 QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类。用于生成 sql 的 where 条件,&#xff0c;entity 属性也用于生成 sql 的 whe…

MybatisPlus使用Wrapper实现增删改查功能

条件构造器的格式说明 导入maven依赖 <dependency><groupId>com.github.jeffreyning</groupId><artifactId>mybatisplus-plus</artifactId><version>1.5.1-RELEASE</version><scope>compile</scope></dependency>…

java wrapper作用_java Wrapper类基本用法详解

在封装中有一种特殊的类,能够把基本的数据类型进行转换来方便实际的使用。我们在之前提到的一些数据类型,最明显的特征是所有字母为小写状态,那么经过Wrapper的包装后,首字母就变成了大写。下面我们就这种特殊的封装类Wrapper的概念、转换图解、模式以及实例带来分享。 1.概…

MybatisPlus学习 条件构造器Wrapper方法详解

目录 1、条件构造器 2、AbstractWrapper 2.1、eq、allEq、ne、 2.2、gt、ge、lt、le 2.3、between、notBetween 2.4、like、notLike、likeLeft、likeRight 2.5、isNull、isNotNull 2.6、in、notIn 2.7、inSql、notInSql 2.8、or、and 2.9、exists、notExists 2.10、…

MybatisPlus--QueryWrapper

QueryWrapper wrapper介绍 Wrapper &#xff1a; 条件构造抽象类&#xff0c;最顶端父类 AbstractWrapper &#xff1a; 用于查询条件封装&#xff0c;生成 sql 的 where 条件 QueryWrapper &#xff1a; Entity 对象封装操作类&#xff0c;不是用lambda语法UpdateWrapper &…

Gradle基础:9:wrapper的使用

Gradle Wrapper是gradle建议的使用方式&#xff0c;这篇文章将会结合具体的例子来说明一下如何使用。 Gradle Wrapper Gradle Wrapper实际上就是一个脚本&#xff0c;使用它可以下载和使用指定版本的gradle&#xff0c;根据需要进行在使用之前进行下载&#xff0c;有效避免本…

spring boot之maven-wrapper

Spring Boot有很多功能特性值得借鉴和学习&#xff0c;很多玩Spring Boot的人知道不需要安装Tomcat很方便&#xff0c;其实并没有发现Maven也是不需要提前安装。它这样做的好处在于解决了开发环境maven版本不一致导致的各种问题&#xff0c;spring boot中集成了maven-wrapper的…

dubbo之SPI Wrapper分析

写在前面 本文需要dubbo SPI的简单基础知识&#xff0c;对dubbo SPI不了解的朋友可以参考dubbo之SPI分析 。 源码&#xff01;&#xff01;&#xff01;。 在dubbo之SPI分析 文章中我们分析了SPI机制&#xff0c;其中有种SPI是一个Wrapper类的情况&#xff0c;本文一起来看下Wr…

MyBatis与QueryWrapper

目录 一、MyBatis标签 1.2 if标签 1.2 foreach标签 1.3 sql标签 1.4 where标签 1.5SQL片段的使用 二、条件构造器 2.1QueryWrapper 2.1.1查询 2.1.2 查询列2 2.1.2 删除 2.1.3子查询 2.1.4组装查询条件 2.1.5组装排序条件 2.1.6组装删除条件 2.1.7条件的优先级 2.1.8 子…

QueryWrapper常用方法

QueryWrapper常用方法 MybatisPlus 使用QueryWrapper测试用例 一、ge、gt、le、lt、isNull、isNotNull Test public void testQuery() { QueryWrapper<User> queryWrapper new QueryWrapper<>();queryWrapper.isNull("name").ge("age", 12)…

java service wrapper 中文_Java Service Wrapper实践

很久前就使用JAVA写了一个后台服务器,基于MINA框架的。并且一直部署运行于服务器中,当然有一个黑框框。 就正常运行而言,此种运行方式没有任何问题。 但是就这运行期间出现的一些问题: 1,服务器问题重启后,每次都要登录远程将服务器打开,即使我已经配置了开机自启动,但…

Gradle Wrapper 详解

Gradle Wrapper 详解 我们介绍了 Android 项目的目录及 Gradle 配置&#xff0c;我们提到有个目录是/gradle/wrapper。今天这篇文章我们来学习 Gradle Wrapper。通过这篇文章我们将了解什么是 Gradle Wrapper&#xff1f;为什么需要用 Gradle Wrapper&#xff1f;以及 Gradle …

wrapper java 64_Wrapper配置详解及高级应用

将一个简单的程度如HelloWorld 的应用包装秤Wrapper 服务并不复杂&#xff0c;甚至可以认为非常简单。但是实际项目应用过程中我们的程序一般较庞大&#xff0c;运行环境也较复杂。 通过Wrapper 配置文件的分析与配置进一步了解构建Wrapper 服务需要注意的关键点及重要部分。 首…

RDP Wrapper

说到要在非Windows Server版本上实现多用户远程桌面连接 &#xff0c;我们都知道一个大名鼎鼎的软件RDP Wrapper Library&#xff0c;它是开源的&#xff0c;所有秘密作者都没有保留&#xff0c;所有问题全部在GitHub上面写的清清楚楚&#xff0c;在这里感谢这些伟大的人&#…

wrapper后台启动java程序

文章目录 1&#xff0c;下载wrapper2&#xff0c;使用wrapper后台启动java程序2.1&#xff0c;编写java样例程序2.2&#xff0c;配置wrapper2.3&#xff0c;拷贝启动脚本2.4&#xff0c;启动服务 1&#xff0c;下载wrapper 下载地址&#xff1a;https://wrapper.tanukisoftwar…

Java常用类-包装类(Wrapper)简单介绍

目录 前言1、包装类(Wrapper) 前言 本文主要介绍java中的包装类 1、包装类(Wrapper) Java是面向对象的编程语言&#xff0c;但它也包含了8种基本数据类型&#xff0c;这8种基本数据类型不支持面向对象的编程机制&#xff0c;基本数据类型的数据也不具备“对象”的特性&#…

强大的wrapper

最近在看大数据和容器相关的东西&#xff0c;发现有一个模式被反复使用到&#xff0c;关键是被用的很恰当且优雅&#xff0c;并能在这些关键技术中都发挥着至关重要的核心作用。我想你已经猜到了&#xff0c;他就是Eminem——强大的rapper——哦&#xff0c;不对&#xff0c;是…