首页 > 爱奇艺 2021/08/01 笔试全 AC 分享
头像
airmelt
编辑于 2021-08-04 11:42
+ 关注

爱奇艺 2021/08/01 笔试全 AC 分享

本人使用 Python
第一题是个简单的 MySQL
select demand_id, count(id) as `count`
from Task
group by demand_id
having count > 1;
第二题直接暴力都能 100%, 有精度要求, 可以使用 decimal.Decimal
from decimal import Decimal
nums, k = input().strip().split(':')
nums = list(map(int, nums.split(',')))
n = len(nums)
pre = sum(nums[:k])
result = 0
for i in range(1, n - k):
    cur = sum(nums[i:i + k])
    cur = str((cur - pre) / pre * 100)
    cur = Decimal(cur).quantize(Decimal("0.01"), rounding="ROUND_HALF_UP")
    result = max(result, cur)
    pre = cur
print(str(result) + '%')
第三题提示了直接贪心就行, 注意初始化的时候要初始化所有值为 1
rains = list(map(int, input().strip()[1:-1].split(',')))
m = len(rains)
n = max(rains)
if not m:
    print('[]')
empty = [True] * (n + 1)
result = [-1 if rain else 1 for rain in rains]
flag = True
available = []
for i in range(m):
    if rains[i]:
        if empty[rains[i]]:
            empty[rains[i]] = False
        elif available:
            result[available.pop(0)] = rains[i]
        else:
            flag = False
            break
    else:
        available.append(i)
if flag:
    print('[' + ','.join(list(map(str, result))) + ']')
else:
    print('[]')
第四题, 可以参考 LeetCode 的按序打印, 不过 Python 可以偷鸡
print(input().strip().upper())

全部评论

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

相关热帖

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

近期精华帖

热门推荐