爱奇艺 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())