首页 > 腾讯技术岗823笔试交流(python)
头像
牛客349544969号
编辑于 2020-08-23 22:54
+ 关注

腾讯技术岗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的来分享一下思路:-)


全部评论

(4) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐