腾讯笔试,综合后台 100-100-0-100-20

1 电话 ac
import sys

t = int(sys.stdin.readline().strip())

for _ in range(t):
    n = int(sys.stdin.readline().strip())
    line = sys.stdin.readline().strip()
    if n < 11:
        print('NO')
        continue
    else:
        for c in line:
            if n < 11:
                print('NO')
                break
            if c == '8':
                print('YES')
                break
            else:
                n -= 1
2 配对 ac
import sys

t = int(sys.stdin.readline().strip())
time_list = []
time_dict = {}

for _ in range(t):
    line = sys.stdin.readline().strip()
    nlist = list(map(int, line.split()))
    n = nlist[0]
    time = nlist[1]
    time_list.append(time)
    time_dict[time] = n

time_list.sort()
i = 0
j = len(time_list) - 1
max_sum = 0
while i < j:
    curr_sum = time_list[i] + time_list[j]
    max_sum = max(curr_sum, max_sum)
    if time_dict[time_list[i]] < time_dict[time_list[j]]:
        time_dict[time_list[j]] -= time_dict[time_list[i]]
        i += 1
    elif time_dict[time_list[i]] > time_dict[time_list[j]]:
        time_dict[time_list[i]] -= time_dict[time_list[j]]
        j -= 1
    else:
        i += 1
        j -= 1
print(max_sum)
3 0 https://zhuanlan.zhihu.com/p/20038650 maybe this?
4 减去最小数 ac
import sys

line = sys.stdin.readline().strip()
nlist = list(map(int, line.split()))
n = nlist[0]
k = nlist[1]

line = sys.stdin.readline().strip()
nlist = list(map(int, line.split()))

nlist.sort()

res = 0
i = 0
for _ in range(k):
    if i > n - 1:
        print(0)
    else:
        while nlist[i] - res <= 0:
            i += 1
            if i > n - 1:
                break
        if i <= n - 1:
            print(nlist[i] - res)
            res += nlist[i] - res
            i += 1
        else:
            print(0)
5 异或 20% 就不插代码了,后来有思路没时间了。
#腾讯##笔试题目#
全部评论
最后一题 思路是啥啊 兄弟
点赞 回复 分享
发布于 2019-09-20 22:06
第三题背包做的不懂为啥结果 10%
点赞 回复 分享
发布于 2019-09-20 22:08
同3.2
点赞 回复 分享
发布于 2019-09-20 22:09
第三题我就是三维背包啊,过不了……就30%,我都想了半天有没有其他思路了
点赞 回复 分享
发布于 2019-09-20 22:21
第一题我不懂为什么就是过不了 num = int(input()) signal = 0 for i in range(num):     n = int(input())     str = input()     if n < 11:         print("NO")     else:         for i in range(n - 10):             if str[i] == "8":                 print("YES")                 signal = 1                 break         if signal == 0:             print("NO")
点赞 回复 分享
发布于 2019-09-20 22:40
第三题竟然A了,我也是醉了 num = int(input()) list1 = list(map(int, input().strip().split())) list1.sort() list1.reverse() list2 = [] signal = 0 for i in list1:     if signal == 0:         list2.append(str(i))         signal = 1     else:         list2.insert(0, str(i))         signal = 0 str1 = " ".join(list2) print(str1)
点赞 回复 分享
发布于 2019-09-20 22:41

相关推荐

头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
有工作后先养猫:太好了,是超时空战警,我们有救了😋
点赞 评论 收藏
分享
1 13 评论
分享
牛客网
牛客企业服务