腾讯笔试0426
这么多大佬都用的C++吗?
我一个Python 狗来啦,一共375%
#腾讯笔试##笔试题目##腾讯#
我一个Python 狗来啦,一共375%
1,队列,100%
t = int(input()) for _ in range(t): q = int(input()) list1 = [] for _ in range(q): line = input() if line[0:4] == 'PUSH': x = int(line.split()[-1]) list1.append(x) if line[0:3] == 'TOP': if len(list1): print(list1[0]) else: print(-1) if line[0:3] == 'POP': if len(list1): del list1[0] else: print(-1) if line[0:4] == 'SIZE': print(len(list1)) if line[0:5] == 'CLEAR': list1 = []
2,两点距离,0%,暴力竟然没分,因为超时改用贪心也没过
def Distance(a0,a1,b0,b1): #返回数据类型为float浮点数
return ((a0-b0)**2+(a1-b1)**2)**0.5
t = int(input())
for _ in range(t):
n = int(input())
if n>10**4:
print("%.3f"%0)
break
a_x, a_y, b_x, b_y = [0]*n, [0]*n, [0]*n, [0]*n
for i in range(n):
a_x[i], a_y[i] = map(int, input().split())
for i in range(n):
b_x[i], b_y[i] = map(int, input().split())
# print(a_x, a_y)
res = float('inf')
# for i in range(n):
# for j in range(n):
# if abs(a_x[i] - b_x[j]) >= res&nbs***bsp;abs(a_y[i] - b_y[j]) >= res:
# continue
# res = min(res, Distance(a_x[i], a_y[i], b_x[j], b_y[j]))
# if res == 0: break
# if res == 0: break
i, j = 0, 0
res = Distance(a_x[i], a_y[i], b_x[j], b_y[j])
while i<n-1 and j<n-1:
if Distance(a_x[i+1], a_y[i+1], b_x[j], b_y[j]) < res:
res = Distance(a_x[i+1], a_y[i+1], b_x[j], b_y[j])
i += 1
continue
if Distance(a_x[i], a_y[i], b_x[j+1], b_y[j+1]) < res:
res = Distance(a_x[i], a_y[i], b_x[j+1], b_y[j+1])
j += 1
continue
i += 1
j += 1
print("%.3f"%res)
3,翻牌子,100%,遇到错的就翻,竟然ac了!!!!
n = int(input()) a = list(map(int, input().split())) b = list(map(int, input().split())) def change(i,j): a[i], b[j] = b[j], a[i] a[j], b[i] = b[i], a[j] def judge(s): for i in range(len(s)-1): if s[i] > s[i+1]: return i return -1 # print(judge(a)) res = 0 while judge(a) != -1: index = judge(a) change(index, index+1) res += 1 if res > n**2: res = -1 break print(res)
4,队列,75%,说实话没怎么看懂怎么用两个栈去搞,瞎写的有着成绩不错了
n = int(input()) list1 = [0]*10**6 head = 0 tail = 0 for _ in range(n): line = input() if line[0:3] == 'add': x = int(line.split()[-1]) list1[tail] = x tail += 1 if line[0:4] == 'poll': head += 1 if line[0:4] == 'peek': print(list1[head])
5,完全二叉树,100%
def f(i): res = 0 while i: res += 1 i = i >> 1 return res q = int(input()) for _ in range(q): x, y = map(int, input().split()) # print(x, y) ce = f(x) if y >= ce: print(-1) else: for _ in range(ce - y): x = x >> 1 print(x)
科大讯飞公司氛围 474人发布
查看10道真题和解析