腾讯技术岗823笔试交流(python)

写倒是写出来四题,但是除了第一题有10%之外都是0
翻了一下,好像没有多少python的分享,把自己的贴出来交流一下好了
第一题用了跟栈,找到能匹配的就消掉,但是最后一个用力出来的结果不对,c++的分享里面矩阵的方法不太懂
import sys 
str = sys.stdin.readline()
stack = []
def look(k):
    if k == ")":
        for i in range(len(stack)-1,-1,-1):
            if stack[i] == "(":
                del(stack[i])
                return
    elif k == "]":
        for i in range(len(stack)-1,-1,-1):
            if stack[i] == "[":
                del(stack[i])
                return
    stack.append(k)
for i in str:
    if i == "("&nbs***bsp;i == "[":
        stack.append(i)
    elif i == ")"&nbs***bsp;i == "]":
        look(i)
    print(stack)

print(len(stack))
第二题的面积想了很久跟x轴的交点,出来的数也用round修得跟用例一模一样了,还是0
import sys,math
n = int(sys.stdin.readline())

def fun(x,a,c):
    return a/3*(x**3)+0.5*(x**2) +c*x
def ori(x,a,c):
    return a*(x**2)+x+c

if n>0:
    for i in range(n):
        str  = sys.stdin.readline().split()
        a = int(str[0])
        b = int(str[1])
        c = int(str[2])
        d = int(str[3])
        print(a,b,c,d)
        if ori((-1/(2*a))) <0:
            zero = (-1+math.sqrt(1-4*a*b))/(2*a)
        else:
            zero = None
        print(round(abs(fun(d,a,b)-fun(c,a,b))),5)
d第三题取模,本地都能过但是在线就是0,
做了一个dict,只有一个人的组合是n个,从2-n的话,k人团体的组合数是s = 1+2+3+...+n-k+1(找出来的规律不知道对不对),总和就是1*n +...+k*s +...+n
import sys
n = sys.stdin.readline()
n = int(n)
def cal(k):
    res = 0
    for i in range(1,k+1):
        res += i
    return res
dic = {}
dic[1] = n
for i in range(2,n+1):
    dic[i] = cal(n-i+1)
res = 0
for i in range(1,n+1):
    res += i * dic[i]
    #print(res)
print(res% (10**9+7))
第四题我的思路是把每个点作为key,可以通达的点作为value存到dict里面
然后暴力搜一下每个组合的value值是不是一样
好像有10%的过了,但是后面的超时
import sys
str = sys.stdin.readline().split()
n = int(str[0])
m = int(str[1])
p = dict()
def add_route(x,y):
    if x not in p:
        p[x] = list()
    if y not in p:
        p[y] = list()
    p[x].append(y)
    p[y].append(x)

for i in range(m):
    temp = sys.stdin.readline().split()
    a = temp[0]
    b = temp[1]
    add_route(a,b)

plist = list(p.keys())
#print(plist)
count = 0
def com(x,y):
    return set(x)==set(y)

for i in range(len(plist)):
    for j in range(i+1,len(plist)):
        
        if com(p[plist[i]],p[plist[j]]) == True:
            count+=1

print(count)
第五题看起来跟第四题有点像,可是没时间了,做的话应该会做个dict,然后用动态规划做
感想:看到有全ac的大佬感觉自己已经凉透了,不过有没有同样用python的来分享一下思路:-)


#笔试题目##腾讯#
全部评论
第二题保留六位小数就a了
点赞 回复 分享
发布于 2020-08-23 23:45
第5题感觉是最短路径的算法。可惜我没写出来😴
点赞 回复 分享
发布于 2020-08-24 00:50
第一题和第四题思路跟你一样,同只有10%🤣🤣第四题超时了可以理解,第一题没想明白问题出在哪
点赞 回复 分享
发布于 2020-08-24 09:06
请问lz投的是什么部门呀?
点赞 回复 分享
发布于 2020-09-02 13:43

相关推荐

工作基本定了,比较满意。这深度学习真是难搞啊,论文看不懂,代码看不懂,不会改,创新点???&nbsp;还有一个月中期,怎么搞,已经抑郁了,没有小论文要求,我真是非常幸运了,不然就我这科研能力…………&nbsp;感觉自己对自己失去信心,无时无刻不在否定自己取得一些成绩都是运气好罢了,真的能顺利毕业吗?严重内耗、无力感爆棚啊…………
AI牛可乐:哎呀,听起来你最近压力好大呀,毕业论文和工作的双重压力一定让你感觉像是背了两座山呢。深度学习确实挺复杂的,就像是要在一片迷雾中找到出路一样。但是,你已经很棒了,工作都定好了,这是很大的成就呢! 论文的事情,别太担心。每个人都有看不懂代码和论文的时候,这是正常的。至于创新点嘛,有时候灵感就像小猫一样,需要一点一点地哄出来的。你可以先试试把你看过的资料整理一下,说不定就能找到新的思路呢。 中期答辩前,你可以列个计划,一步一步来,把大问题分解成小问题,一点一点克服。记得,你不是一个人在战斗,你的导师、同学都是你的战友哦。 至于信心嘛,别否定自己,每个人都会有低谷的时候。你已经取得的成绩,都是你实力的体现。毕业不是问题,只要你不放弃,就一定能顺利走过去的。加油哦,我相信你可以的! 对了,如果你愿意的话,可以点击我的头像,我们私信聊,也许我能帮你出出主意,或者就是简单地聊聊天,分散一下你的注意力也好呀。🐮💪🌟
点赞 评论 收藏
分享
喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
牛客279957775号:铁暗恋
点赞 评论 收藏
分享
评论
点赞
5
分享
牛客网
牛客企业服务