新凯来 笔试
两题
1. 机器独立加工问题。N台机器加工M零件,零件相同,但每台机器加工时间时间不同,求总的最短时间 。300
2. 编码是否正确的问题。编码规则是数字加字符(包含数字字符)如:"9computer012"编码正确9+“computer0”+1+“2”
但是01a不对,0不能作为编码。200分。要求只能有一种解析方式,如果有歧义就返回false。
1. 解答:
def schedule_simple(speeds, n):
""" speeds: 各机器加工一个零件的时间, n: 零件数 """
# 初始化:记录每台机器已经用了多少时间
# 一开始所有机器都是0,都没开始干活
times = [0] * len(speeds) # 假设3台机器 → times = [0, 0, 0]
# 循环n次,给每个零件分配机器
for _ in range(n): # n=10个零件,就循环10次
# times.index(min(times)) 是什么意思?
# min(times): 找出当前times列表中的最小值(哪台机器累计时间最短)
# .index(): 找到这个最小值的位置(第几台机器)
i = times.index(min(times)) # 找到当前最空闲的机器编号
# 给这台最空闲的机器分配一个零件
# 它的总时间增加一个零件的加工时间
times[i] += speeds[i] # speeds[i]是这台机器加工一个零件需要的时间
# 所有零件分配完,返回最慢的机器所用的时间
# 这就是整个任务完成需要的时间
return max(times)
# 总是去队伍最短的地方排队
print(schedule_simple([5,3,4], 10))
1. 机器独立加工问题。N台机器加工M零件,零件相同,但每台机器加工时间时间不同,求总的最短时间 。300
2. 编码是否正确的问题。编码规则是数字加字符(包含数字字符)如:"9computer012"编码正确9+“computer0”+1+“2”
但是01a不对,0不能作为编码。200分。要求只能有一种解析方式,如果有歧义就返回false。
1. 解答:
def schedule_simple(speeds, n):
""" speeds: 各机器加工一个零件的时间, n: 零件数 """
# 初始化:记录每台机器已经用了多少时间
# 一开始所有机器都是0,都没开始干活
times = [0] * len(speeds) # 假设3台机器 → times = [0, 0, 0]
# 循环n次,给每个零件分配机器
for _ in range(n): # n=10个零件,就循环10次
# times.index(min(times)) 是什么意思?
# min(times): 找出当前times列表中的最小值(哪台机器累计时间最短)
# .index(): 找到这个最小值的位置(第几台机器)
i = times.index(min(times)) # 找到当前最空闲的机器编号
# 给这台最空闲的机器分配一个零件
# 它的总时间增加一个零件的加工时间
times[i] += speeds[i] # speeds[i]是这台机器加工一个零件需要的时间
# 所有零件分配完,返回最慢的机器所用的时间
# 这就是整个任务完成需要的时间
return max(times)
# 总是去队伍最短的地方排队
print(schedule_simple([5,3,4], 10))
全部评论
相关推荐