阿里8.17笔试 Python解法

1.碰到很多小伙伴说python的list没办法hash,其实这里可以用一个字符串代替的。 AC 100%
n,K=map(int,input().split())
a=[]
for _ in range(n):
    a.append(list(map(int,input().split())))
res=0
cache={}
for i in range(len(a)):
    temp=''
    t=''
    for j in range(1,K):
        temp+=str(a[i][j]-a[i][j-1])
        t+=str(-a[i][j]+a[i][j-1])
        temp+=' '
        t+=' '
    if t in cache:
        res+=cache[t]
    if temp not in cache:
        cache[temp]=1
    else:
        cache[temp]+=1
print(res)

2.dfs+cache  AC 100%
n,m=map(int,input().split())
res,cache=0,{}
def dfs(n,m):
    if (n,m) in cache: return cache[(n,m)]
    if m==0: return 0
    if n==0: return 1
    res=0
    for i in range(n): res+=dfs(i,m-1)*dfs(n-i-1,m-1)
    cache[(n,m)]=res
    return res
print(dfs(n,m+1))



#笔试题目#
全部评论
同学,我们团队业务扩张,校招还有7,8个坑,考虑投下阿里云嘛?
点赞 回复 分享
发布于 2020-08-18 11:29
请问一下这道题意思是输入数据只有一组嘛
点赞 回复 分享
发布于 2020-08-18 15:45

相关推荐

不愿透露姓名的神秘牛友
11-26 18:54
点赞 评论 收藏
分享
牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
4 3 评论
分享
牛客网
牛客企业服务