博客
关于我
记一次华为机试
阅读量:422 次
发布时间:2019-03-06

本文共 1053 字,大约阅读时间需要 3 分钟。

华为机试笔记

考试结构

华为机试分为三个题目,其中两题每题100分,一题200分,压线150分算过。考试时间为150分钟,支持多语言环境(如牛客网)。考试时需全程打开摄像头和电脑屏幕分享,手机需打开小程序(可用计算器)不退出,建议使用本地IDE进行编码。

考试注意事项

  • 输入输出理解:明确题目要求的输入输出方式,避免自己造轮子,尤其是有现成解决方案时。
  • 效率优先:熟练掌握常用算法,能够快速解决问题,避免重复造轮子。
  • 心态调整:保持良好心态,遇到不会的题目可以放弃,但要尽力完成自己会的部分。

  • 消消乐(字符串)

    题目描述

    给定一个只包含大小写字母的字符串(大小写敏感),若相邻两个元素相等则消除,直到无法再消除为止。输出消消乐后字符串的长度,若字符串中包含非字母字符,则输出0。

    示例

    输入:mMbccbc解释:首先消除ccbb,剩下mMc,长度为3。

    题解思路

  • 输入检查:首先检查字符串是否包含非字母字符,如果有则返回0。
  • 特殊情况处理:对于长度为1或2的字符串,直接计算结果。
  • 主处理逻辑
    • 遍历字符串,逐个字符比较。
    • 当相邻字符相同时,跳过下一个字符。
    • 当不满足上述条件时,将字符添加到结果字符串中。
  • 最后处理:处理最后一个字符,确保其被正确包含在结果中。

  • 矩阵最大值(二维矩阵)

    题目描述

    给定一个n×n的二进制矩阵(仅包含0和1),计算矩阵的最大值。每行的元素可以进行左移或右移操作,转化为二进制数,求最大值之和。

    示例

    输入:51,0,0,0,10,0,0,1,10,1,0,1,01,0,0,1,11,0,1,0,1解释:通过左右移位操作,最大值为122。

    题解思路

  • 字符串处理:将输入字符串按逗号分割,得到每行的二进制字符串。
  • 二进制转十进制:使用parseInt函数,将每行的二进制字符串转换为十进制数。
  • 最大值计算:遍历所有行,计算最大值并累加。

  • 树的剪枝(树)

    题目描述

    给定一棵树,删除某个结点及其所有子结点,并按从小到大输出剩余结点。

    示例

    输入:52 108 103 84 81 48解释:删除结点8后,剩余结点为2、10。

    题解思路

  • 数据结构选择:使用对象存储父结点和子结点。
  • 递归删除:从根节点开始,递归删除指定的结点及其子结点。
  • 排序输出:收集剩余结点,按升序排列并输出。

  • 最后

    本文总结了华为机试的几道常见题目及解法,涵盖了字符串处理、矩阵操作和树结构等多个领域。建议在实践中多练习,熟练掌握相关算法,保持良好的心态,遇到不会的题目可以放弃,但要尽力完成自己会的部分。

    转载地址:http://dkrkz.baihongyu.com/

    你可能感兴趣的文章
    oracle创建数据库的步骤
    查看>>
    Oracle创建用户、角色、授权、建表
    查看>>
    Oracle创建用户与授予表空间与权限
    查看>>
    oracle创建表(并且实现ID自增)
    查看>>
    oracle删除重复数据保留第一条记录
    查看>>
    oracle判断空值的函数nvl2,【PL/SQL】 NVL,NVL2,COALESCE 三种空值判断函数
    查看>>
    Oracle发布VirtualBox 7.1稳定版!支持ARM、优化了UI、支持Wayland等
    查看>>
    oracle启动三步
    查看>>
    oracle启动关闭服务,启动关闭oracle服务.bat
    查看>>
    Oracle命令行创建数据库
    查看>>
    Oracle和SQL server的数据类型比较
    查看>>
    oracle和sybase的一些区别
    查看>>
    oracle在日本遇到的技术问题
    查看>>
    Oracle在线重定义
    查看>>
    oracle基础 管理索引
    查看>>
    oracle复习(一)
    查看>>
    ORACLE多表关联UPDATE 语句
    查看>>
    Oracle多表查询与数据更新
    查看>>
    oracle如何修改单个用户密码永不过期
    查看>>
    oracle字符集
    查看>>