华为笔试求解答!!
今天刚刚做完华为的笔试,其中有一道题是这样的,输入一串数字,e.g.10 120 10 20 10 10 50,每个数字代表在页面i所停留的时间(秒),i为index。分析规则为:每分钟(60秒)之内阅读完的页数不能大于4页。那这串数字距离,这个学生第一分钟学完1页,第二分钟学完0页,第三分钟学完5页,第四分钟学完1页,不满足要求,所以返回0,满足则返回1。
输入为:
3 //记录个数,大于0小于10000
//后面每一行第一个数代表有几页,后面则是每页停留时间
2 10 10
4 10 15 20 30
5 10 10 10 10 10
输出为:
1
1
0
我的代码是
import sys if __name__ == "__main__": # 读取第一行的n n = int(sys.stdin.readline().strip()) minute = 60 for i in range(n): cnt = 1#第几分钟 result = [] sum_time = 0 # 读取每一行 line = sys.stdin.readline().strip() # 把每一行的数字分隔后转化成int列表 values = list(map(int, line.split())) #go through each line for j in range(values[0]): sum_time += values[j+1] #累计时间 while sum_time >= cnt*minute: #只要超过60s,120s等 result.append(j-sum(result))#记录每分钟读了几页 cnt += 1 if j == values[0]-1 and sum_time < cnt*minute:#手动处理最后一页 result.append(j+1-sum(result)) if (all(ele < 4 for ele in result)): print(1) else: print(0)我通过了题目给的自测,也自己试了一些boundry condition,但是我的case通过率是0.00%
百思不得其解到底哪里出错了,求大佬指点!
#Python##笔试题目##华为##秋招#