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

    你可能感兴趣的文章
    pynput的基本介绍和使用
    查看>>
    pyodbc 通过 IIS7 连接到 MSSQL 2005 服务器
    查看>>
    PyPI 存储库中的 JarkaStealer:深入解析与防范措施
    查看>>
    Pyplot tutorial,Pyplot官方教程自翻译
    查看>>
    PyQ5学习笔记——使用内部槽函数关闭窗口
    查看>>
    PyQ5学习笔记——使用自定义槽函数关闭窗口
    查看>>
    PyQt MimeData 文件名
    查看>>
    PyQt QML Material Design 按钮背景不会改变
    查看>>
    PyQt QString转成python stirng
    查看>>
    PyQt QToolButton在焦点时不更新图标
    查看>>
    PyQt 正确使用 emit() 和 pyqtSignal()
    查看>>
    PyQT-将文件复制到剪贴板
    查看>>
    PYQT.如何在QTableView中插入小部件
    查看>>
    PyQt4 代码在 PyQt5 (QHeaderView) 上不起作用
    查看>>
    PyQt4 到 PyQt5 ->mainFrame() 已弃用,需要修复才能加载网页
    查看>>
    PyQt4, class:mouseButtons用法
    查看>>
    PyQt4参考文档
    查看>>
    PyTorch Lightning:通过分布式训练扩展深度学习工作流
    查看>>
    PyQt5 - QThread:在线程仍在运行时被销毁
    查看>>
    PyQt5 - 如何从工作线程发出信号以通过 GUI 线程调用事件
    查看>>