博客
关于我
记一次华为机试
阅读量: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/

    你可能感兴趣的文章
    mysql自增id超大问题查询
    查看>>
    MySQL锁与脏读、不可重复读、幻读详解
    查看>>
    MySQL集群解决方案(4):负载均衡
    查看>>
    mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
    查看>>
    MySQL高级-MySQL并发参数调整
    查看>>
    MySQL高级-视图
    查看>>
    MySQL:判断逗号分隔的字符串中是否包含某个字符串
    查看>>
    Nacos在双击startup.cmd启动时提示:Unable to start embedded Tomcat
    查看>>
    Nacos安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    Nacos配置中心集群原理及源码分析
    查看>>
    nacos配置自动刷新源码解析
    查看>>
    Nacos集群搭建
    查看>>
    nacos集群搭建
    查看>>
    Navicat for MySQL 查看BLOB字段内容
    查看>>
    Neo4j电影关系图Cypher
    查看>>
    Neo4j的安装与使用
    查看>>
    Neo4j(2):环境搭建
    查看>>
    Neo私链
    查看>>
    nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>
    Nessus漏洞扫描教程之配置Nessus
    查看>>