8.13bilibili笔试

第一题
A = input()
B = input()
hashA = {}
hashB = {}

for ch in A:
    if ch in hashA:
        hashA[ch] += 1
    else:
        hashA[ch] = 1
for ch in B:
    if ch in hashB:
        hashB[ch] += 1
    else:
        hashB[ch] = 1
if len(hashA) != len(hashB):
     print(0)

else:
    for key in hashA.keys():
        if key not in hashB:
            print(0)
            break
        elif hashA[key] != hashB[key]:
            print(0)
            break
    else:
        print(1)



第二题:
import math
n = int(input())
def issu(num):
    if num < 2:
        return False
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            return False
    return True
tmp = []
for i in range(10001):
    if issu(i):
        tmp.append(i)
i, j = 0, 0
ans = 0
while j < len(tmp) and i < len(tmp):
    subsum = sum(tmp[i:j + 1])
    if subsum == n:
        ans += 1
        i += 1
        j = i
    elif subsum < n:
        j += 1
    else:
        i += 1
print(ans)
第三题
#######0-1背包问题##########
n,m=[int(i) for i in input().split()]
mi,ri=[],[]

for i in range(n):
    a,b=[int(i) for i in input().split()]
    mi.append(a)
    ri.append(b)
dp=[[0 for _ in range(m+1)] for _ in range(n+1)]

for i in range(1,n+1):
    for j in range(1,m+1):
        if mi[i-1]>j:
            dp[i][j]=dp[i-1][j]
        else:
            dp[i][j]=max(dp[i-1][j-mi[i-1]]+ri[i-1],dp[i-1][j])
print(dp[n][m])



#笔经##哔哩哔哩#
全部评论
第一题一个哈希表就行了 a在里面则加1 b在里面则减1 最终判断哈希表是否全0就行
2 回复 分享
发布于 2020-08-13 20:56
楼主你好,请问你是什么岗位?开发的话,是Java方向还是C++方向?或者其他语言方向~
点赞 回复 分享
发布于 2020-08-13 20:26
第一题用Counter就行
点赞 回复 分享
发布于 2020-08-13 20:39

相关推荐

躺尸修仙中:因为很多92的也去卷中小厂,反正投递简历不要钱,面试不要钱,时间冲突就推,不冲突就面试积累经验
点赞 评论 收藏
分享
11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
评论
3
4
分享
牛客网
牛客企业服务