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

news2024/11/20 6:31:47

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

五月份之前,如果你参加华为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数组中的每个单词content
    for (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除外)+e
    if (!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除外)+e
            if (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除外)+e
    if (!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除外)+e
            if (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://www.coloradmin.cn/o/641036.html

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

相关文章

建站记录1:开通阿里云,购买域名,安装宝塔+LAMP系统

个人建站&#xff1a; 因为宝塔系统&#xff08;https://www.bt.cn&#xff09;&#xff0c;可以方便的部署zblog 彩色背景 什么是LAMP&#xff1f; Linux Apache PHP MySQL LAMP 是指Linux&#xff08;操作系统&#xff09; Apache &#xff08;HTTP 服务器&#xff09;…

batch_size对精确度和损失的影响

1 问题 在深度学习的学习过程中&#xff0c;模型性能对batchsize虽然没有学习率那么敏感&#xff0c;但是在进一步提升模型性能时&#xff0c;batch_size就会成为一个非常关键的参数。 batch_size对精度和损失的影响研究。 batch_size [,32,64,128&#xff0c;256] 不同batch_…

镕铭微电子VPU 极致降本增效实践

当前视频行业环境下&#xff0c;硬件芯片的机遇与挑战并存&#xff0c;如何使得硬件芯片产品及方案设计更好地贴近用户、服务用户及满足用户更深层次需求&#xff1f;本次LiveVideoStackCon 2022 北京站邀请到镕铭微电子解决方案架构总监——蔡媛Amy&#xff0c;为大家介绍镕铭…

【熬夜送书 | 第五期】清华社赞助 | 《MySQL系列丛书》

MySQL是什么? MySQL是一种关系型数据库管理系统&#xff0c;由瑞典MySQL AB公司开发。MySQL是最流行的关系型数据库管理系统之一&#xff0c;在WEB应用方面&#xff0c;MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 MySQL有…

Arduino esp32 环境配置以及避坑指南

目录 环境配置安装 IDE下载固件 项目测试疑难解答micropython 固件冲突问题 环境配置 安装 IDE 参考文献&#xff1a;CSDN 首先下载 Arduino IDE 请注意&#xff0c;一定要选择 1.8 版本的&#xff0c;千万别用 2.0版本&#xff01;&#xff01;&#xff01; 建议直接下载 win…

通过向量回归、随机森林回归、线性回归和K-最近邻回归将预测结果绘制成图表进行展示

文章目录 表格部分数据如下运行效果如下代码解析完整代码附件 表格部分数据如下 附件里会给出全部数据链接 运行效果如下 代码解析 import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import FontPropertiesfont FontP…

webpack自动化打包webpack-dev-server

在前面的章节中我们每次改完要打包的资源文件&#xff0c;和配置文件都是是输入npx webpack命令手动打包的&#xff0c;那么有没有什么办法可以监听到我们代码的改动&#xff0c;在保存时就自动打包呢&#xff1f; 答案是当然有&#xff0c;不然哪些框架的脚手架是怎么实现保存…

Redis命令-数据结构String类型和Hash类型

1. String类型 字符串类型&#xff0c;Redis中最简单的存储类型 底层都是字节数组形式存储&#xff0c;只不过是编码方式不同&#xff1b; 字符串类型的最大空间不能超过512m&#xff1b; SET/GET/MSET/MGET使用示例&#xff1a; INCR使用示例&#xff1a; INCRBY自增并指定步长…

CSS粘性定位 - 它的真正工作原理!

本文首发于微信公众号&#xff1a;大迁世界, 我的微信&#xff1a;qq449245884&#xff0c;我会第一时间和你分享前端行业趋势&#xff0c;学习途径等等。 更多开源作品请看 GitHub https://github.com/qq449245884/xiaozhi &#xff0c;包含一线大厂面试完整考点、资料以及我的…

STM32单片机蓝牙APP智能温控风扇红外热释电

实践制作DIY- GC0144-蓝牙APP智能温控风扇 基于STM32单片机设计---蓝牙APP智能温控风扇 二、功能介绍&#xff1a; 硬件组成&#xff1a;STM32F103C最小系统板DS18B20温度湿度OLEDHC-05蓝牙模块SR602红外热释电人体检测5V直流风扇多个按键&#xff08;开关键&#xff0c;下限减…

【WinForm项目】C#模拟交通信号灯|WinForm交通红绿灯

文章目录 前言一、运行效果二、界面设计三、代码&#xff1a;总结 前言 交通信号灯十字路口通行原理图。 实际上归类为四大类&#xff1a; 南北双向直行东西双向直行一对黑色粗线的左转一对红色粗线的左转。 状态逻辑图如下图所示&#xff1a;假定通行顺序为&#xff1a;南…

JavaWeb笔记(四)

前端基础 **提醒&#xff1a;**还没有申请到IDEA专业版本授权的同学要抓紧了&#xff0c;很快就需要用到。 经过前面基础内容的学习&#xff0c;现在我们就可以正式地进入Web开发的学习当中啦~ 本章节会讲解前端基础内容&#xff08;如果已经学习过&#xff0c;可以直接跳到…

一文说透:低代码开发平台和零代码平台区别是什么?

低代码开发平台和零代码平台区别是什么&#xff1f; 一个简单的例子就可以解释清楚。 假设你想入住一套新房&#xff0c;回看住房变迁史&#xff1a; 最原始方式是&#xff1a;自己建造往后一点&#xff0c;交付“毛坯房”&#xff1a;开发商统一建小区&#xff0c;不需要自…

5本豆瓣高分Python技术书籍

Python的经典书籍有很多&#xff0c;推荐五本对初学者来说非常实用的入门书&#xff0c;豆瓣评分都在8以上。分别是&#xff1a; 《Python学习手册》&#xff0c;豆瓣8.2分《Python编程&#xff0c;从入门到实践》&#xff0c;豆瓣9.3分《Python Cookbook》&#xff0c;豆瓣9.…

如何优化ABAP程序

文章目录 1 Before code3 After code3 Performance4 Summary4.1 We don t use nested loop as possible as .4.2 We use useful data in the program .4.3 Take care history data . 1 Before code DATA:BEGIN OF LW_SZJE,ZJN TYPE P DECIMALS 1, "折旧年KANSW LIKE A…

从零玩转系列之微信支付实战PC端接口搭建

一、前言 halo各位大佬很久没更新了最近在搞微信支付,因商户号审核了我半个月和小程序认证也找了资料并且将商户号和小程序进行关联,至此微信支付Native支付完成.此篇文章过长我将分几个阶段的文章发布(项目源码都有,小程序和PC端) 在此之前已经更新了微信支付开篇、微信支付安…

阿里云+Nginx Proxy Manager 设置二级域名

这里我们以购买阿里云的域名为例 有域名的作用&#xff1a;当我们在浏览器上面访问主机的某一个端口时&#xff0c;必须输入主机ip端口号&#xff0c;这就会非常的麻烦&#xff0c;而且也会暴露出我们的主机名&#xff0c;很不安全&#xff0c;因此域名的好处就是可以将我们的主…

开关电源-FPC入门知识

01功率因数补偿和功率因数校正 功率因数补偿&#xff1a;在上世纪五十年代&#xff0c;已经针对具有感性负载的交流用电器具的电压和电流不同相&#xff08;图1&#xff09;从而引起的供电效率低下提出了改进方法&#xff08;由于感性负载的电流滞后所加电压&#xff0c;由于电…

JavaWeb笔记(二)

数据库基础 数据库是学习JavaWeb的一个前置&#xff0c;只有了解了数据库的操作和使用&#xff0c;我们才能更好地组织和管理网站应用产生的数据。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IJ1neG69-1686619058026)(null)] 什么是数据库 数…

2023中国纸业碳中和与可持续峰会,九月来袭!

制浆与造纸是资源密集型产业&#xff0c;具有高污染、高能耗的特点。“双碳”目标提出后&#xff0c;造纸行业同时面临需求和产能增长的生产现状与实现“双碳”目标的考验。如何在未来保证产量增长&#xff0c;还能实现节能减排和降耗&#xff0c;成为了所有制浆造纸及上下游产…