滴滴笔试 9.8

第一题 二分查找 AC

n, a, b = map(int, input().split())
c = list(map(int, input().split()))

# 二分查找,初始化左右边界
left = a * b // sum(c)
right = a * b // n
while left < right:
    mid = (left + right) // 2
    # 当前生产的糖果包数
    cnt = sum(x * mid // b for x in c)
    if cnt < a:
        left = mid + 1
    else:
        right = mid
print(right)

第二题 暴力搜索 82%

判断字符串是否为任意两个合并字符串的子串(不能是前缀或后缀)

n = int(input())
words = []
for _ in range(n):
    words.append(input())

# 两两合并字符串
records = []
for i in range(n):
    for j in range(n):
        records.append(words[i] + words[j])

ret = []
for s in words:
    for t in records:
        x = t.find(s)
        if x != -1 and x != 0 and x != len(t) - len(s):
            ret.append(s)

ret.sort()
print(len(ret))
for s in ret:
    print(s)

全部评论
两个82有机会进面吗
3
送花
回复
分享
发布于 2023-09-08 21:04 广东
原来用find要快得多,我第二题用in暴力只过了27
点赞
送花
回复
分享
发布于 2023-09-08 20:44 上海
滴滴
校招火热招聘中
官网直投
上边界为什么是/3?
点赞
送花
回复
分享
发布于 2023-09-08 20:51 广东
大佬大佬,A得差不多了 xdm投这,不卡学历-->https://www.nowcoder.com/share/jump/3343306381692594975654
点赞
送花
回复
分享
发布于 2023-09-08 21:04 北京
唉,第二题完全没考虑暴力做法,g
点赞
送花
回复
分享
发布于 2023-09-08 21:05 陕西
我是第一题82,第二题ac了
点赞
送花
回复
分享
发布于 2023-09-08 21:43 广东

相关推荐

8 15 评论
分享
牛客网
牛客企业服务