尝试解答一下华子4月24日机考题第一题

我参加的不是4月24日的机考,根据网上七拼八凑的题目,尝试解答一下,自己在ide上跑,可以通过,求大佬指导呀!!!

这个解法没有构造二叉树,而是用列表来“仿造”二叉树。

import sys
import math

# 定义一个dfs搜索方法,在lst列表中找x这个值,将“向左搜索”或“向右搜索”填入ret中
def dfs(x, lst, ret):
    if len(lst)==1:						# 当传入的lst长度仅为1(base case)
        if lst[0]==x:					# lst中仅有的值是我们要找的x
            ret.append('Y')
        else:							# 不是要找的值
            ret.append('N')
        return							# 返回
    mid = len(lst)//2					# 取列表的中点的索引
    if lst[mid]==x:						# 列表中点值是要找的x
        ret.append('Y')
        return
    if lst[mid]>x:						# 要找的x在左半边
        ret.append('L')
        dfs(x, lst[0:mid], ret)
    if lst[mid]<x:						# 要找的x在右半边
        ret.append('R')
        dfs(x, lst[mid+1:], ret)

while 1:
    try:
        lst = list(map(int, input().split(' ')))	# 获取2^n+1个数,转换成整数存入列表
        to_find = int(input())						# 获取要查找的那个x
        lst = sorted(lst)							# 递增排序
        ret = []
        ret.append('S')
        dfs(to_find, lst, ret)
        result = ''.join(ret)
        print(result)
    except:
        break

运行结果如图所示:

#华为笔试##华为机考##华为实习##华为#
全部评论
我们题估计是一样的,第一题其实你只需要不断求排序后的数字中位数就可以,4.24那个我做出了两题就直接交了😂😂
点赞
送花
回复
分享
发布于 04-26 17:22 湖北

相关推荐

头像
不愿透露姓名的神秘牛友
04-24 08:37
1.&nbsp;C++如何调用C程序函数?请举例说明。2.&nbsp;详细解释static关键字在不同情况下的作用,包括全局变量、静态全局变量、局部变量和静态局部变量的作用域、生命周期和区别。3.&nbsp;队列和栈有什么区别?请详细比较它们的特点和应用场景。4.&nbsp;在C/C++中,如何申请和释放堆空间?请说明malloc、calloc、free和delete的用法和区别。5.&nbsp;请解释gcc和makefile的使用方法。6.&nbsp;在Linux下,如何操作PWM、GPIO和串口?7.&nbsp;如何操作文件以及判断文件是否存在?请说明open、read、write等函数的使用。8.&nbsp;请解释socket网络编程的原理和过程。9.&nbsp;在Linux中,进程和线程的操作是怎样的?如何实现它们之间的通信?10.&nbsp;Linux内核是如何编译的?它进行了哪些操作?11.&nbsp;请解释通信API的格式,并举例说明。12.&nbsp;请解释TLB(Translation&nbsp;Lookaside&nbsp;Buffer)的作用和原理。13.&nbsp;请描述在项目中数据上传所使用的通讯协议。14.&nbsp;如何对项目中的某些方法进行重构?15.&nbsp;数据库范式的概念是什么?请解释。16.&nbsp;什么是数据库长连接?它有什么优缺点?17.&nbsp;请解释单例模式和观察者模式的原理及其应用场景。18.&nbsp;为什么饿汉模式是线程安全的?19.&nbsp;Linux驱动加载的匹配过程是怎样的?20.&nbsp;U-Boot移植的流程是怎样的?21.&nbsp;交叉编译的步骤是怎样的?gcc链路是从哪里获取的?22.&nbsp;请解释操作系统文件层次的实现原理。23.&nbsp;GDB的使用方法是怎样的?24.&nbsp;在socket网络编程中,close_wait状态的原因和解决方法是什么?25.&nbsp;C++中有哪几种构造函数?请详细说明它们的区别和用法。26.&nbsp;虚函数和纯虚函数有什么区别?请解释。27.&nbsp;你在Linux中使用过哪些指令?请列举几个常用的指令。28.&nbsp;你对GDB指令了解多少?请简要说明一些常用的指令及其作用。29.&nbsp;在软件中,中断号、中断向量表和中断函数之间有什么关系?请解释。30.&nbsp;当发生中断时,芯片会执行哪些操作?以上题目整理到面经专栏中&nbsp;&nbsp;c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
转发
2 1 评论
分享
牛客网
牛客企业服务