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

相关推荐

牛客279957775号:铁暗恋
点赞 评论 收藏
分享
斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
3 4 评论
分享
牛客网
牛客企业服务