深信服,python开发岗笔试编程题目
第一题
print() 大法,可以 AC 33%
代码就不上了
第二题 AC 100%
if __name__ == "__main__": box = [int(x) for x in input().strip().split(' ')] pow = int(input()) box.sort(reverse=True) cnt = 0 l = 0 r = len(box)-1 record = 0 while l <= r: if record + box[l] > pow and record + box[r] > pow: cnt += 1 record = 0 continue if record + box[l] <= pow: record += box[l] l += 1 continue if record + box[r] <= pow: record += box[r] r -= 1 continue if record > 0: cnt += 1 print(cnt)
第三题 利用大顶堆 AC 85.7%
from heapq import heapify, heappop if __name__ == "__main__": s = [x for x in input().strip().split(' ')] n = int(input()) s = set(s) if n > len(s): maxv = -float('inf') for item in s: if maxv < len(item): maxv = len(item) print(maxv) else: length = [] for item in s: length.append(-len(item)) heapify(length) while n > 0: t = -heappop(length) n -= 1 print(t)