华为330笔试 前两题Python版

据说只要100分就过笔试啦
A了两题直接溜了,第三题等大佬们的题解啦。
抛砖引玉的前两题Python解法
#芯片
def func():
    M = int(input())
    N = int(input())
    alist = list(map(str, input().split()))
    rest = [0] * M
    j = 0
    mark = 0
    for i in range(len(alist) - 1):
        if alist[i] == 'B':
            while j < M and rest[j] != 0:
                j += 1
            if j < M:
                rest[j] += 4
            else:
                break
        else:
            while mark < M and rest[mark] == 4:
                mark += 1
            if mark < M:
                rest[mark] += 1
            else:
                break

    if alist[-1] == 'A':
        while mark < M and rest[mark] == 4:
            mark += 1
        if mark < M:
            rest[mark] += 1
            print(mark + 1)
            print(rest[mark])
        else:
            print(0)
            print(0)
    else:
        while j < M and rest[j] != 0:
            j += 1
        if j < M:
            rest[j] += 4
            print(j + 1)
            print(1)
        else:
            print(0)
            print(0)

#找路
def func():
    tmp = list(map(int, input().split()))
    m = tmp[0]          #行
    n = tmp[1]          #列
    start = list(map(int, input().split())) #开始
    end = list(map(int, input().split()))   #结束
    count = int(input())
    stop = []
    res = []
    path = []
    for i in range(count):
        tmp = list(map(int, input().split()))   #挡道
        stop.append(tmp[:])

    mark = [[0] * n for i in range(m)]
    for alist in stop:
        i, j = alist[0], alist[1]
        mark[i][j] = 1

    def dfs(i, j, path):
        if i >= m&nbs***bsp;j >= n&nbs***bsp;i < 0&nbs***bsp;j < 0: return
        if i == end[0] and j == end[1]:
            if not res:
                res.append(path[:])
                return
            else:
                if len(path) == len(res[0]):
                    res.append(path[:])
                    return
                elif len(path) < len(res[0]):
                    while res:
                        res.pop()
                    res.append(path[:])
                    return

        if 0 <= i < m and 0 <= j < n and mark[i][j] == 0:
            path.append((i, j))
            mark[i][j] = 1
            dfs(i - 1, j, path)
            dfs(i, j - 1, path)
            dfs(i + 1, j, path)
            dfs(i, j + 1, path)
            path.pop()
            mark[i][j] = 0

    dfs(start[0], start[1], path)
    print(str(len(res)) + ' ' + str(len(res[0])))


#华为笔试#
全部评论
题目都没有发出来有啥用呢
1 回复 分享
发布于 2022-04-19 16:05
楼主 我也准备考python,python需要啥程度才能过呢?
点赞 回复 分享
发布于 2022-05-11 14:57
总分多少
点赞 回复 分享
发布于 2022-04-12 00:48
楼主有java版吗?
点赞 回复 分享
发布于 2022-04-09 13:03
为什么我还没收到笔试通知😓
点赞 回复 分享
发布于 2022-04-04 23:44
问一下楼主投的什么岗
点赞 回复 分享
发布于 2022-03-30 22:43

相关推荐

点赞 评论 收藏
分享
面试官全程关摄像头1.自我介绍一下2.React和Vue哪个更熟悉一点3.你在之前那段实习经历中有没有什么技术性的突破(我只是实习了44天工作28天,我把我能说的都说了)4.你封装的哪个表单组件支不支持动态传值5.自己在实习阶段Vue3项目封装过hook吗6.hook有什么作用7.Vue2和Vue3的响应式区别(我说一个是proxy是拦截所有的底层操作,Object.defineProperty本身就是一个底层操作,有些东西拦截不了,比如数组的一些操作还有等等,面试官就说实在要拦截能不能拦截????我心想肯定不行呀,他的底层机制就不允许吧)8.pinia和vuex的区别(这个回答不出来是我太久没用了)9.pinia和zustand的区别,怎么选(直接给我干懵了)(我说react能用pinia吗&nbsp;&nbsp;他说要用的话也可以)10.渲染一万条数据,怎么解决页面卡顿问题(我说分页、监听滚轮动态加载,纯数据展示好像还可以用canvas画)(估计是没说虚拟表单,感觉不满意)11.type和interface的区别12.ts的泛型有哪些作用(我就说了一个结构相同但是类型不同的时候可以用,比如请求响应的接口,每次的data不同,这里能用一个泛型,他问我还有什么)13.你项目用的是React,如果让你再写一遍你会选择什么14.pnpm、npm、yarn的区别15.dependencies和devdependencies的区别总而言之太久没面试了,上一段实习的面试js问了很多。结果这次js一点没问,网络方面也没考,表现得很一般,但是知道自己的问题了&nbsp;&nbsp;好好准备,等待明天的影石360和周四的腾讯了&nbsp;&nbsp;加油!!!
解zj:大三的第一段面试居然是这样的结局
查看15道真题和解析
点赞 评论 收藏
分享
评论
6
40
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务